不知君 发表于 2022-3-24 22:28:27

带你学C带你飞S1E4

问题1为啥空格是用%10打出来?问题2:假设%10是打印空格,那为什么右对齐和左对齐那里需要%10明明没有空格啊,
问题3指数形式为啥是%e,有知识点说明吗?为什么左对齐右对齐一个大写,一个小写

zzxhh628 发表于 2022-3-24 22:28:28

printf第一个参数格式如下
%[.precision]specifier,%[标志][最小宽度][.精度][类型长度]说明符

zzxhh628 发表于 2022-3-24 23:16:54

第一个10代表宽度,所以空格了。第二个限定了浮点数的精度为2,也指定了空格,实际空格是宽度减输出的字符个数(不含空格)。第三个e就是用指数格式显示,类似于1.24e+01这样的,也指定了宽度。

zzxhh628 发表于 2022-3-24 23:18:57

这个宽度如果小于输出字符个数应该是不会空格的,负数宽度应该就是左对齐。

不知君 发表于 2022-3-25 19:35:11

zzxhh628 发表于 2022-3-24 23:16
第一个10代表宽度,所以空格了。第二个限定了浮点数的精度为2,也指定了空格,实际空格是宽度减输出的字符 ...

那为什么有大写小写有什么区别吗

不知君 发表于 2022-3-25 19:42:20

zzxhh628 发表于 2022-3-24 23:07
printf第一个参数格式如下
%[.precision]specifier,%[标志][最小宽度][.精度][类 ...

大佬可以举个例子吗?就是同时有你说的这几个(包括显示出来)

zzxhh628 发表于 2022-3-26 09:58:52

这些格式控制符一般来说大小写没什么影响,但是在%x有影响,例如
printf("%x",0xaa); //输出 aa
printf("%X",0xaa); //输出 AA
。在%d、%f、%c上好像没影响。具体https://f10.baidu.com/it/u=2963736654,145916528&fm=30&app=106&f=PNG&access=215967316?w=640&h=531参考此图。

zzxhh628 发表于 2022-3-26 10:08:48

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

我举几个例子吧。https://f11.baidu.com/it/u=2710439383,145916515&fm=30&app=106&f=PNG&access=215967316?w=560&h=143&s=5E283462C5765C224E5474CB000080B1这个是标志的用法。
printf("% d % d\n",1000,-1000); //正数输出有空格,负数输出无空格
printf("%.0f %#.0f\n",1000.123,1000.123);//.0f限制了浮点数精度,所以说输出来的不带小数点,加上#会把小数点输出出来

zzxhh628 发表于 2022-3-26 10:17:29

这个是精度。
https://f11.baidu.com/it/u=621719975,145916509&fm=30&app=106&f=PNG&access=215967316?w=197&h=59&s=1EAA702385324C325AD515CB0000C0B1
(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"); //超过指定长度截断,过长的截断。

zzxhh628 发表于 2022-3-26 10:26:15

类型长度
就是u和l等的,用于说明要输出的数据的长度,指名相同数据类型的不同长度。和类型说明符组合使用,%ld。
https://f10.baidu.com/it/u=3747077505,145916513&fm=30&app=106&f=PNG&access=215967316?w=640&h=219&s=E5E0BA568CA84C091045485C0300D071

沐雨尘枫 发表于 2022-3-27 13:50:04

这就是钻研精神吗{:10_256:}

不知君 发表于 2022-3-27 14:34:08

沐雨尘枫 发表于 2022-3-27 13:50
这就是钻研精神吗

不不不,只是想搞懂,萌新一个,啥也不会,我先设置,搞懂可能要看好久

不知君 发表于 2022-3-27 14:35:20

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

好的,看懂,码住

不知君 发表于 2022-3-27 14:43:49

zzxhh628 发表于 2022-3-26 10:17
这个是精度。

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

原来如此{:10_266:}
页: [1]
查看完整版本: 带你学C带你飞S1E4