我通常获取与字符%c
,但我已经看到了使用代码%*c%c
。 例如:
char a;
scanf("%*c%c", &a);
有什么不同?
我通常获取与字符%c
,但我已经看到了使用代码%*c%c
。 例如:
char a;
scanf("%*c%c", &a);
有什么不同?
在scanf
格式字符串,后%
,在*
字符是分配抑制字符 。
在你的榜样,它吃的第一个字符,但并不保存。
例如,有:
char a;
scanf("%c", &a);
如果输入: xyz\n
( \n
是换行字符),那么x
将被存储在对象a
。
附:
scanf("%*c%c", &a);
如果输入: xyz\n
, y
将存储在对象a
。
ç说,指定*
为scanf
是这样的:
(C99,7.19.6.2p10)除非分配抑制是由*指示的,转换的结果被放置在对象指向以下一个尚未接收到的转换结果的格式参数的第一个参数。
据维基百科 :
百分比符号之后的可选星号(*)右表示通过此格式说明读出的数据将不被存储在变量中。 格式字符串后面没有参数应包括该下降变量。
它是如此,你可以跳过由星号匹配的字符。