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个回答  2018-07-20

c语言中printf函数是显示输出函数,其中百分号后面的字符定义如下:

%a(%A)     浮点数、十六进制数字

%c             字符

%d             有符号十进制整数

%f              浮点数(包括float和doulbe)       

%e(%E)     浮点数指数输出[e-(E-)记数法]      

%g(%G)     浮点数不显无意义的零"0" 

%i              有符号十进制整数(与%d相同)        

%u             无符号十进制整数

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

本回答被网友采纳
第2个回答  2018-07-27

%*d  表示输出的数字占据的宽度

比如执行以下代码

int main()

{

int a[5]={1,2,3,4,5};

for(int i=0;i<5;i++){

printf("%4d",a[i]);

}

return 0;

}

出来的结果是

但如果改为 printf("%d",a[i]);

-------------------------------------------------------------

但如果在scanf中加入*号 指跳过输入内容

执行以下代码

int main()

{

int a,b;

scanf("%d%*d%d",&a,&b);

printf("%4d%4d",a,b);

return 0;

}

输入 1 2 3

程序直接忽略2,输出1 3

本回答被网友采纳
第3个回答  2015-10-27

在printf可以这样理解*被替换成printf("%*d",number,var);中的number,然后按照printf("%number d"10);来格式化输出数据,看代码:

#include<stdio.h>
void main()
{
printf("000000123450000000\n");
printf("1=%d,2=%*d,3=%d\n",1,5,3,3);
return;
}

从图中可以看出输出 了5个空格。

补充:在scanf中其表示忽略该输入

第4个回答  2012-07-04
楼主好像已经知道了这个问题的答案了吧.
printf("%*d",a,b);其中a作为b的输出宽度控制.
其实也就是*的替换功能了,正是由于*的替换功能结合%md的宽度控制,替换之后具体怎么输出的规则就和宽度控制的规则一样了.
举个例子:
printf("%*d",2,123);//输出为:123,相当于%2d输出的效果,因为123位数超过2,故原样输出,且为默认的右对齐.
printf("%*2d",1,123);//输出应为[7的空格][123],即相当于%12d输出的效果.
欢迎交流.追问

printf("%*d",a,b);这个指定宽度是a的值吗?

追答

呃~打错了,第二个例子输出应该是:
[9个空格][123],即相当于%12d输出的效果

本回答被提问者和网友采纳

printf中的%*d是什么意思?
printf中的%*d的意思是输出*个宽度的%d(整形)。例子:a=5;b=6;printf("%*d",a,b);其中,a代表*,即%5d,格式化输出5个宽度的整形b。最后输出的结果为 6.即[4个空格][6].扩展内容:printf()函数:printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。printf()函...

c语言问题:%* d什么意思?
c语言中%*d表示忽略第一个整数,而%*d中的*,是一个标志符号,用来表示跳过它相应的数据,表示输出的数据区和它对应的数据表示输出的空格个数,从而使下一个输入的内容复制给紧接着的变量。c语言格式介绍:%d是输出整型数据,%和格式字符组合在一起的作用是将输出的数据转换为指定的格式输出。%d是带...

C语言中%*d格式输出是什么意思??
printf中的%*d的意思是输出*个宽度的%d(整形)。例子:a=5;b=6;printf("%*d",a,b);其中,a代表*,即%5d,格式化输出5个宽度的整形b。最后输出的结果为 6.即[4个空格]

%*d在C语言中什么意思
d 表示有符号十进制整数, %c 表示字符。这一类符号是“格式说明”用于格式输入与格式输出,就是我们常见的printf和scanf函数中在输入输出时,对不同类型的数据(如int,float,char等)要使用不同的格式说明。其中%d,用来输出十进制整数%f,用来输出实数(包括单,双精度),以小数形式输出%c,用来输出一...

在c语言当中,%*d是什么意思
d 表示格式控制符 代表的是一个整数,如果是负整数,则表示左对齐,如果是正整数,表示右对齐。printf("%5d\\n",1000000); \/\/数据长度大于5 ,它会原样输出1000000 printf("%-5d\\n",1000000); \/\/数据长度大于5 ,它会原样输出1000000 printf("%5d\\n",100); \/\/数据长度小于5 ,它会输...

C语言输出printf里面%*d是什么意思?
printf("%*d",a,b);其中a作为b的输出宽度控制.其实也就是*的替换功能了,正是由于*的替换功能结合%md的宽度控制,替换之后具体怎么输出的规则就和宽度控制的规则一样了.举个例子: printf("%*d",2,123);\/\/输出为:123,相当于%2d输出的效果,因为123位数超过2,故原样输出,且为默认的...

%*d在c语言里是什么意思
d 表示有符号十进制整数, %c 表示字符。这一类符号是“格式说明”用于格式输入与格式输出,就是我们常见的printf和scanf函数中在输入输出时,对不同类型的数据(如int,float,char等)要使用不同的格式说明:其中 d,用来输出十进制整数 f,用来输出实数(包括单,双精度),以小数形式输出 c,用来输出...

c中的 %*d ,代表什么意思。
表示数据的宽度(右对齐时)如:int a=10,b=5;printf("%*d\\n",a,b);就是以整型方式输出b(值为5)整个数据宽度为a(值为10)上述程序输出结果为5,前面有9个空格

C语言中%*d格式输出是什么意思??
d中的*,是一个标志符号,表示输出的数据区和它对应的数据表示输出的空格个数。例如:printf("%*d",3,6)输出时,输出的是:前面三个空格然后才是6

跪求C语言高手帮忙解释一下下面这段代码中“%*d”的含义
d是抑制赋值的意思,即让scanf匹配一个%d,但不将这个%d赋值给变量。这里的话,i=第一个数,j=第三个数,k并没有被赋值。

相似回答