我有一个C程序,其中一行有:
scanf("%d%*c%d", &x, &y);
%*c
是什么意思?
答案 0 :(得分:4)
scanf从stdin中读取数据,然后将该数据存储到根据格式指定的参数中(在您的情况下,参数为&x
和&y
)。
*
表示要从流中读取数据但忽略该数据(即它不存储在参数指向的位置)。
在您的情况下,%*c
表示该函数读取数据类型char
但不将其存储到实例中。如果你想忽略一个字符串的一部分,比如字符,这很有用。
答案 1 :(得分:1)
来自http://beej.us/guide/bgc/output/html/multipage/scanf.html
*
告诉scanf()执行指定的转换,但不将其存储在任何位置。它只是在读取数据时丢弃数据。这就是你 如果你想scanf()吃一些数据,但你不想存储,请使用 在任何地方;你没有给scanf()一个这个转换的参数。 示例:%* d。