special-characters - 特殊字符:%*c%c 和 %c 之间的区别是什么?

  显示原文与译文双语对照的内容
59 1

我通常用 %c 获取一个字符,但是我看到了使用 %*c%c的代码。例如:

char a;
scanf("%*c%c", &a);

有什么区别?

时间:原作者:0个回答

114 0

scanf 格式字符串中,% 之后,* 字符是赋值suppressing取消字符

在示例中,它将吃掉第一个字符,但不存储它。

例如使用:

char a;
scanf("%c", &a);

如果输入:xyzn,( n 是新行字符) 将在对象 a 中存储 x

使用:

scanf("%*c%c", &a);

如果输入:xyzny 将存储在对象 a 中。

C 表示以这种方式为 scanf 指定 *:

( c,7.19.6.2 p10 ) 除非分配抑制被 *, 指示,否则转换的结果将放置在第一个参数后面的对象。

原作者:
...