鱼C论坛

 找回密码
 立即注册
查看: 2895|回复: 13

[已解决]带你学C带你飞S1E4

[复制链接]
发表于 2022-3-24 22:28:27 | 显示全部楼层 |阅读模式
10鱼币
微信图片_20220324222038.png 问题1为啥空格是用%10打出来?问题2:假设%10是打印空格,那为什么右对齐和左对齐那里需要%10明明没有空格啊,
问题3指数形式为啥是%e,有知识点说明吗?为什么左对齐右对齐一个大写,一个小写
最佳答案
2022-3-24 22:28:28
printf第一个参数格式如下
%[flags][width][.precision][length]specifier,%[标志][最小宽度][.精度][类型长度]说明符

最佳答案

查看完整内容

printf第一个参数格式如下 %[flags][width][.precision][length]specifier,%[标志][最小宽度][.精度][类型长度]说明符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-24 22:28:28 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
printf第一个参数格式如下
%[flags][width][.precision][length]specifier,%[标志][最小宽度][.精度][类型长度]说明符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-24 23:16:54 From FishC Mobile | 显示全部楼层
第一个10代表宽度,所以空格了。第二个限定了浮点数的精度为2,也指定了空格,实际空格是宽度减输出的字符个数(不含空格)。第三个e就是用指数格式显示,类似于1.24e+01这样的,也指定了宽度。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-24 23:18:57 From FishC Mobile | 显示全部楼层
这个宽度如果小于输出字符个数应该是不会空格的,负数宽度应该就是左对齐。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-25 19:35:11 | 显示全部楼层
zzxhh628 发表于 2022-3-24 23:16
第一个10代表宽度,所以空格了。第二个限定了浮点数的精度为2,也指定了空格,实际空格是宽度减输出的字符 ...

那为什么有大写小写有什么区别吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-25 19:42:20 | 显示全部楼层
zzxhh628 发表于 2022-3-24 23:07
printf第一个参数格式如下
%[flags][width][.precision][length]specifier,%[标志][最小宽度][.精度][类 ...

大佬可以举个例子吗?就是同时有你说的这几个(包括显示出来)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-26 09:58:52 | 显示全部楼层
这些格式控制符一般来说大小写没什么影响,但是在%x有影响,例如
printf("%x",0xaa); //输出 aa
printf("%X",0xaa); //输出 AA
。在%d、%f、%c上好像没影响。具体

                               
登录/注册后可看大图
参考此图。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-26 10:08:48 | 显示全部楼层
不知君 发表于 2022-3-25 19:42
大佬可以举个例子吗?就是同时有你说的这几个(包括显示出来)

我举几个例子吧。

                               
登录/注册后可看大图
这个是标志的用法。
printf("% d % d\n",1000,-1000); //正数输出有空格,负数输出无空格
printf("%.0f %#.0f\n",1000.123,1000.123);//.0f限制了浮点数精度,所以说输出来的不带小数点,加上#会把小数点输出出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-26 10:17:29 | 显示全部楼层
这个是精度。

                               
登录/注册后可看大图

(1)对于整型(d,i,o,u,x,X),precision表示输出的最小的数字个数,不足补前导零,超过不截断。
(2)对于浮点型(a, A, e, E, f ),precision表示小数点后数值位数,默认为六位,不足补后置0,超过则截断。
(3)对于类型说明符g或G,表示可输出的最大有效数字。
(4)对于字符串(s),precision表示最大可输出字符数,不足正常输出,超过则截断。
printf("%.8d\n",1000); //不足指定宽度补前补0

printf("%.8f\n",1000.123456);  //不足精度,补后置0。精度长的,就截断。
printf("%.8g\n",1000.123456); //最大有效数字为8位,过长的截断。
printf("%.8s\n","abcdefghijlm"); //超过指定长度截断,过长的截断。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-26 10:26:15 | 显示全部楼层
类型长度
就是u和l等的,用于说明要输出的数据的长度,指名相同数据类型的不同长度。和类型说明符组合使用,%ld。

                               
登录/注册后可看大图

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-27 13:50:04 | 显示全部楼层
这就是钻研精神吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-27 14:34:08 | 显示全部楼层

不不不,只是想搞懂,萌新一个,啥也不会,我先设置,搞懂可能要看好久
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-27 14:35:20 | 显示全部楼层
zzxhh628 发表于 2022-3-26 09:58
这些格式控制符一般来说大小写没什么影响,但是在%x有影响,例如
printf("%x",0xaa); //输出 aa
printf(" ...

好的,看懂,码住
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-3-27 14:43:49 | 显示全部楼层
zzxhh628 发表于 2022-3-26 10:17
这个是精度。

(1)对于整型(d,i,o,u,x,X),precision表示输出的最小的数字个数,不足补前导零,超过不截 ...

原来如此
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-19 18:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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