printf("%3d",c)与printf("%d",c)输出结果的区别在哪?

2024年11月22日 19:11
有5个网友回答
网友(1):

这主要是printf的输出格式问题。
printf的标准格式是:printf("格式说明字符",输出列表项);
其中格式说明字符形式为:% 格式字符串
格式字符串的一般形式:%[-][0][m][.n] 格式字符
% 表示格式说明的起始符号
- 表示输出项左对齐输出,省略则表示右对齐
0 表示空位填充0,省略则表示不填充
m 表示域宽,即对应的输出项在输出设备上所占的字符数
.n 输出浮点数时n指精度(小数位数),省略n则输出6位小数;输出字符串时,表示输出左起n个字符

因此printf("%3d",c)表示域宽为3,即输出3位;printf("%d",c)根据c的值确定位宽。
希望对你有帮助,呵呵,有疑问咱们再一起讨论!!!

网友(2):

printf("%3d",c)输出的结果占3个字节,printf("%d",c)输出的结果占1个字节。

网友(3):

举两个例子
代码
#include

int main()
{
int c;
scanf("%d",&c);
printf("%3d\n",c);
printf("%d\n",c);
return 0;
}

①.c = 12;
输出
12
12
②.c = 12345;
输出
12345
12345

所以,%xd的作用是,输出长度为x的整数,不足就用空格补全,超过或刚刚好就原样输出

网友(4):

如果c的值是 1 的话 输出的时候1前面有二个空格,如果c的值大于3的话就原样输出,像c = 1000 ,就得原样输出了..

希望能解决你的问题.

网友(5):

%后面的数字主要就是输出的内容的宽度,而不加数字就没有限制,会根据你要输出的内容的大小自动进行匹配。