0基础学c求大佬解释代码含义
printf("打印五个字符:%c %c %c %c %c\n", 70, 105, 115, 104, 67);printf("前边用 填充:%10d\n", 2015);
printf("前边用0填充:%010d\n", 2015);
printf("右对齐,保留2位:%10.2f\n", 3.1416);
printf("左对齐,保留3位:%-10.3f\n", 3.1416);
printf("右对齐,指数形式:%10e\n", 520000.0);
printf("左对齐,指数形式:%-10E\n", 520000.0);
第一行通过查ascII得到转换字母
第四行的10代表十个空位取小数点后俩位
第五行加了负号表示从左边开始十个空位取小数点后三位
后面2行的%E的意思是转换成指数形式
请问大佬我这几行理解是对的吗
还有想问问第二行是第三行不是很懂代码含义,想听听大佬的耐心解释,谢谢谢谢{:10_266:} {:10_266:} 是那个S1E4的课后作业最后一项 本帖最后由 jackz007 于 2022-7-27 23:40 编辑
永远Forever 发表于 2022-7-27 23:26
是那个S1E4的课后作业最后一项
printf("前边用 填充:%10d\n", 2015) ; // 以右对齐的形式在 10 个字符的空间内打印输出 2015,左边用 6 个空格进行填充。
printf("前边用0填充:%010d\n", 2015) ; // 以右对齐的形式在 10 个字符的空间内打印输出 2015,左边用 6 个 0 进行填充。 输出的格式是 % [标志][宽度][.精度][长度]转换字符类型
%10d:表示的含义就是 %[宽度 = 10]转换类型 = d
%010d:表示的含义是 %[标志 = 0][宽度 = 10] 转换类型 = d
%10d :10表示输出字符数宽度为10个字符。由于没有“-”号,所以是默认是右对齐,由于 没有设置标志所以默认用空格填充。2015 只占4个字符宽度 在 其 左边填充 6 个空格。
%10d :10表示输出字符数宽度为10个字符。由于没有“-”号,所以是默认是右对齐,由于 设置标志 = 0 所以用 0 填充。2015 只占4个字符宽度 在 其 左边填充 6 个 0。
同理举几个例子
%-03d:表示的含义是 %[标志 = -0][宽度 = 6] 转换类型 = d
所以 其表示的含义就是 输出字符宽度为6个字符。由于标志为“-0”,所以是左对齐,用0填充,2015 只占4个字符宽度 在 其 右边填充 2 个 0。
%-10.3f:表示含义是%[标志 = -][宽度 = 10][ .精度 = .3 ]转换类型 = f(f表示double类型;以小数形式输出浮点数)
{:10_281:} 18199673236 发表于 2022-7-28 17:56
输出的格式是 % [标志][宽度][.精度][长度]转换字符类型
%10d:表示的含义就是 %[宽度 = 10]转换类型 =...
那大佬我想问下,我把标志换成1 为什么执行之后显示的不是6个1嘞 标志只能填充为零
详情可见小甲鱼整理的printf文档{:5_91:} 补充:原文档中关于 (标志)(宽度)是这样描述的
%[.precision]specifier 译为 % [标志][宽度][.精度][长度]转换字符类型
flags可选参数有 “ + ”、“ - ”、“空格”、“ 0 ”、“ # ” (1不在可选参数中哦{:10_256:})
width(宽度、可选)是一个数值,用于指定最小字段的宽度
转换后的参数输出宽度至少要达到这个数值。
如:参数的字符数 < 该数值 ,则在参数左边(如果flags设置为“ - ”,要求左对齐的话则在右边)填充一些字符。 填充字符通常为空格,但如果flags设置为“ 0 ”,则填充字符为数字“ 0 ”.
页:
[1]