鱼C论坛

 找回密码
 立即注册
查看: 742|回复: 2

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

[复制链接]
发表于 2021-8-13 19:41:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1  #include<stdio.h>
2  void 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行:在%和字母之间的数字有小数,我查了下这个小数点前面是宽度、小数点后面是约分到小数点后几位的意思。请问这个宽度是什么意思?
感谢指教!
最佳答案
2021-8-13 22:15:30
printf中 lf和f都是按double类型输出  默认缺省精度是6 所以小数点后面六位

宽度就是打印时所占的格子 (显示的空间
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-8-13 22:15:30 | 显示全部楼层    本楼为最佳答案   
printf中 lf和f都是按double类型输出  默认缺省精度是6 所以小数点后面六位

宽度就是打印时所占的格子 (显示的空间
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-15 20:06:16 | 显示全部楼层
万千只cnm 发表于 2021-8-13 22:15
printf中 lf和f都是按double类型输出  默认缺省精度是6 所以小数点后面六位

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

哦哦,明白了,谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 14:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表