珠玉琳琅 发表于 2021-8-13 19:41:22

(新手求助)关于格式输入与输出和格式字符串的问题

1#include<stdio.h>
2void main()
3{
4          int a = 15;
5          float b = 123.1234567;
6          double c = 12345678.1234567;
7          char d = 'p';
8          printf("a=%d,%5d,%o,%x\n", a, a, a, a);
9          printf("b=%f,%lf,%5.4lf,%e\n", b, b, b, b);
10          printf("c=%lf,%f,%8.4lf\n", c, c, c);
11          printf("d=%c,%8c\n", d, d);
12}
输出结果是a=15,   15,17,f
                b=123.123459,123.123459,123.1235,1.231235e+02
                c=12345678.123457,12345678.123457,12345678.1235
                d=p,       p
我的疑问是:1.第9、10行:输入b=%lf,输出的值为什么溢出了?lf读取的不是double类型的值吗?
                   2.第9、10行:在%和字母之间的数字有小数,我查了下这个小数点前面是宽度、小数点后面是约分到小数点后几位的意思。请问这个宽度是什么意思?
感谢指教!

万千只cnm 发表于 2021-8-13 22:15:30

printf中 lf和f都是按double类型输出默认缺省精度是6 所以小数点后面六位

宽度就是打印时所占的格子 (显示的空间

珠玉琳琅 发表于 2021-8-15 20:06:16

万千只cnm 发表于 2021-8-13 22:15
printf中 lf和f都是按double类型输出默认缺省精度是6 所以小数点后面六位

宽度就是打印时所占的格子...

哦哦,明白了,谢谢你{:10_254:}
页: [1]
查看完整版本: (新手求助)关于格式输入与输出和格式字符串的问题