星号在scanf的参数列表中的含义是什么

时间:2014-06-02 19:40:29

标签: c input

我有一个C程序,其中一行有:

scanf("%d%*c%d", &x, &y);

%*c是什么意思?

2 个答案:

答案 0 :(得分:4)

scanf从stdin中读取数据,然后将该数据存储到根据格式指定的参数中(在您的情况下,参数为&x&y)。

*表示要从流中读取数据但忽略该数据(即它不存储在参数指向的位置)。

在您的情况下,%*c表示该函数读取数据类型char但不将其存储到实例中。如果你想忽略一个字符串的一部分,比如字符,这很有用。

答案 1 :(得分:1)

来自http://beej.us/guide/bgc/output/html/multipage/scanf.html

  

*

     

告诉scanf()执行指定的转换,但不将其存储在任何位置。它只是在读取数据时丢弃数据。这就是你   如果你想scanf()吃一些数据,但你不想存储,请使用   在任何地方;你没有给scanf()一个这个转换的参数。   示例:%* d。