C语言中printf里的d%是什么意思?

如题所述

printf中的%*d的意思是输出*个宽度的%d(整形)。
例子:
a=5;
b=6;
printf("%*d",a,b);
其中,a代表*,即%5d,格式化输出5个宽度的整形b。
最后输出的结果为

6.即[4个空格][6].
扩展内容:
printf()函数:
printf()函数是格式化输出函数,
一般用于向标准输出设备按规定格式输出信息。
printf()函数的调用格式为:
printf("<格式化字符串>",
<参量表>)。
其中式样化字符串包括两部分内容:
一部分是正常字符,
这些字符将按原样输出;另一部分是式样化规定字符,
以"%"开端,
后跟一个或几个规定字符,
用来确定输出内容式样。
参量表是需求输出的一系列参数,
其个数务必与式样化字符串所阐明的输出参数个数一样多,
各参数之间用","分开,
且顺序逐一对应,
不然将会出现意想不到的过失。
格式输出,它是c语言中产生格式化输出的函数(在
stdio.h
中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
资料参考:printf函数
-
百科
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-02
不是
printf("%3d",a,b);的意思是输出的数占三个宽度
但是输出列表有a,b两个数而已
宽度就是3不是a的值
第2个回答  2020-04-02
楼主好像已经知道了这个问题的答案了吧.
printf("%*d",a,b);其中a作为b的输出宽度控制.
其实也就是*的替换功能了,正是由于*的替换功能结合%md的宽度控制,替换之后具体怎么输出的规则就和宽度控制的规则一样了.
举个例子:
printf("%*d",2,123);//输出为:123,相当于%2d输出的效果,因为123位数超过2,故原样输出,且为默认的右对齐.
printf("%*2d",1,123);//输出应为[7的空格][123],即相当于%12d输出的效果.
欢迎交流.
第3个回答  2019-02-25
C语言中printf里的%d是输出
int
型数据的格式符。
在scanf()函数里也是如此。
第4个回答  2019-05-05
在printf可以这样理解*被替换成printf("%*d",number,var);中的number,然后按照printf("%number
d"10);来格式化输出数据,看代码:
#include
void main()
{
printf("000000123450000000\n");
printf("1=%d,2=%*d,3=%d\n",1,5,3,3);
return;
}
从图中可以看出输出
了5个空格。
补充:在scanf中其表示忽略该输入