ild*_*0re 4 c special-characters
我通常会获得一个角色%c
,但我看过使用过的代码%*c%c
.例如:
char a;
scanf("%*c%c", &a);
Run Code Online (Sandbox Code Playgroud)
有什么不同?
在scanf
格式字符串中,在该字符之后%
,该*
字符是赋值抑制字符.
在您的示例中,它吃第一个字符但不存储它.
例如,用:
char a;
scanf("%c", &a);
Run Code Online (Sandbox Code Playgroud)
如果输入:xyz\n
,(\n
是新行字符),x
则将存储在对象中a
.
附:
scanf("%*c%c", &a);
Run Code Online (Sandbox Code Playgroud)
如果输入:xyz\n
,y
将存储在对象中a
.
ç说指定*
了scanf
这种方式:
(C99,7.19.6.2p10)除非用*指示赋值抑制,否则转换的结果将放在由尚未收到转换结果的format参数后面的第一个参数指向的对象中.