跪求C语言高手帮忙解释一下下面这段代码中“%*d”的含义

main()
{
int i=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);
}

%*d是抑制赋值的意思,即让scanf匹配一个%d,但不将这个%d赋值给变量。这里的话,i=第一个数,j=第三个数,k并没有被赋值。
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-02-04
scanf("%d%*d%d",&i,&j,&k);
这里表示输入的i,j,k是int型的;
printf("%d%d%d\n",i,j,k);
这里表示输出的i,j,k是int型的;
%d表示输入输出的类型控制。

另外像%f表示float型的输入输出;%ld表示long int型输入输出;%lf表示double型输入输出;
%c表示char型输入输出...
第2个回答  2011-02-04
%d 是格式控制符号,表示整数,告诉编译器要读取的数据是个整形。
第3个回答  2011-02-04
* (.*)
all
这个字符用法为不定长的长度,例如%2d,%3d, %*n , %.*f , etc;

printf( "address [%0*d]\n",8, myFunc) == printf( "address [%08d]\n", myFunc);

%
None
%% 打印一个%

0, #, -, +,(space)

0,+, -, 为右对齐或者左对齐。例如 printf(“%-8d%8d”,1234,5677), 默认为右对齐(“+”), 0做补位填充使用

Space为空位,如果是space和”+”,没有其他,这些space将被忽略, #

c
int or int_t
单个字符,如果使用 wprintf 将是宽字符

C
int or int_t
宽字符 如果使用 wprintf 将是单字符

s
String
单字节字符串使用printf 如果使用 wprintf 就是宽字符串,如果空串,结果是"(null)"

S
String
宽字符串使用printf 如果使用 wprintf 就是单字节字符串,如果空串,结果是"(null)"

w
String,char
打印 char or string,宽字符打印,不喜欢用 W2A的用这个 sprintf(str,"%ws",L"abcde");

d,i,I64I32,I
Int
十进制整形 I64d, i64d 打印64位整形 ui64d无符号64位整形, 末尾d不是必须,I 与平台相关。

l(小写L) ,ll
Int
长整型 printf( "%ld", myFunc), ll 为(long,long)

h
Int
短整形,四字节截取成双字节。

L
Double,float
打印成Long double 类型. 作用于 e,E,f,g,G

o
int
八进制无符号整形

u
int
无符号整形

x
int
无符号十六进制整形,小写 “abcdef”

X
int
无符号十六进制整形,大写 “ABCDEF”

e
double
3.9265e+2,幂形式的浮点数,小写e

E
double
3.9265E+2,幂形式的浮点数,大写E

f
double
打印单精度浮点数

g
double
短的 %e 或者%f

G
double
短的 %E 或者%f

a
double
有符号,双精度浮点数指针地址 0Xh.hhhh p±dd

A
double
有符号,双精度浮点数指针地址 0Xh.hhhh P±dd

n
Pointer to integer
到目前为止缓冲区都有啥取之. printf( "12345%n6789\n", &i ); i就等于5啦

p
Pointer to void
打印物理地址,相当于 printf( "%0*x", 2 * sizeof(void *), &i);

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

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

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

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

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

c语言输入时 %*d 啥意思?
d指跳过某个输入的内容 使下一个输入的内容复制给紧接着的变量 比如 下面程序 输入 1 2 3 则输出为 1 3 程序把2跳过了,直接把3复制给b include <stdio.h> include <stdlib.h> int main(){ int a,b;scanf("%d%*d%d",&a,&b);printf("%d%d",a,b);system("pause");return 0...

c语言中的%*d是什么意思?
用在scanf中跳过指定列的数。如“%2d%※2d%2d”a,b输入123456,a为12,b为56。在c程序设计书中sf介绍中有

C语言输出printf里面%*d是什么意思?
在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;} ...

标准C语言中scanf的%*d什么意思
printf("%d %d %d\\n".x.y.z); 如果输入12 34 56 78 则输出结果为12 56 78 也就是说当要输出34时因为这个抑制符而跳过去了,继续输出以后的数据,懂否?追问:呵呵,真很简单啊,忘了跟你说了,咱们在用一段程序表示吧,int x,y; scanf("%d%*d%d",&x,&y);回答:

相似回答
大家正在搜