c语言中%1d,%2d,%3d,%5d有什么区别?

如题所述

%1d,%2d,%3d,%4d,%5d中%与d之间的数字表示的是输出数据所占的宽度,由系统决定,通常按照数据本身的实际宽度数出,前后不加空格,并且采用右对齐的形式。

在%和格式字符之间插入一个整型常数来指定输出的宽度n。

如果指定的宽度n不够,输出时将会自动突破,保证数据完整输出。如果指定的宽度n超过输出数据的实际宽度,输出时将会右对齐,左边补以空格,达到指定的宽度。

扩展资料:

在“%”和字母之间插进数字表示最大场宽。

例如:%3d表示输出3位整型数,不够3位右对齐。

%9.2f表示输出场宽为9的浮点数,其中小数位为2,整数位为6,小数点占一位,不够9位右对齐。

%8s表示输出8个字符的字符串,不够8个字符右对齐。

如果字符串的长度、或整型数位数超过说明的场宽,将按其实际长度输出。

但对浮点数,若整数部分位数超过了说明的整数位宽度,将按实际整数位输出;

若小数部分位数超过了说明的小数位宽度,则按说明的宽度以四舍五入输出。

参考资料:百度百科-printf

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-02-27
%d前面的数字表示打印格式的位数。
1.如果输出的内容位数不足将会在左边补足空格
2.如果输出的内容位数超过%d前面的数字会将内容全部输出,%d前面的数字相当于无效
例如:
#include <stdio.h>
main()
{
int a=5;
int b=123;
printf("%1d\n",a);
printf("%1d\n",b);
printf("%2d\n",a);
printf("%3d\n",a);
printf("%5d\n",a);
}
输出结果是
5
123
△5
△△5
△△△△5
注意:上面的△代表空格本回答被网友采纳
第2个回答  2012-03-20
所占空间不同