网络包月电话:关于C语言的问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 05:07:40
int a=1,b=2456;printf("%d%2d",a,b)结果就是
12456

“%2d”不是输出一个整数,并且预留2个空格的意思,那么结果怎么会是12456

%md是表示宽度为m的整数,
如果实际的位数大于m,则按实际宽度打出;
如果小于m ,则在左边补0。
b=2456,宽度大于2,就自然原样输出。

%2d是说输出的东西“占有”两个字符的位子并且右对齐,而不是预留两个空格。而现在2456占有四个字符的位子,系统自动转换,把占有的位子扩大到四个,所以2456会紧跟在1后面

int a=1,b=2;printf("%d%2d",a,b)结果就是
1 2
b的位数小于2,由于得右对齐,所以输出1“ ”2,而不是12“ ”

int a=1,b=23;printf("%d%2d",a,b)结果就是
123
b的位数等于2,原样输出

int a=1,b=2456;printf("%d%2d",a,b)结果就是
12456
b的位数大于2,系统自动将位数扩大至4位,输出12456

用于存放打印数据的宽度称为"域宽".如果域宽大于被打印数据的宽度,数据通常会在域宽内右对齐.域宽(用整数值表示)插在百分号%和转换说明符之间.注意打印值的宽度大于域宽时,域宽是自动增长的.

%2d, 输出结果在2个数字的域宽中右对齐
但2345大于2个数字,所以域宽自动增加为4个
所以输出结果为12345,是挨在一起的