我有2个问题。
这里是C ++参考 p>
#include <stdio.h>
int main ()
{
char sentence []="Rudolph is 12 years old";
char str [20];
int i;
sscanf (sentence,"%s %*s %d",str,&i); <---
printf ("%s -> %d\n",str,i);
return 0;
}
问题1.%* s到底在做什么?
我的程序我正在构建哈希表。
它会查询用户是否输入
q- quit
i <int> - inserts integer //must be on same line
d <int> - deletes integer //must be on same line
etc....
For example:
in order to insert "35" I would have to type:
i 35
问题2. C ++引用是否适用于'q'和'i 35',因为'q'与它没有整数?
char choice[10];
char option;
int i;
sscanf(choice, "%c %d", &option, &i);
如果输入'q'(没有附加整数)以及输入“i 35”(带整数是否附加),这是否有效?
答案 0 :(得分:2)
这意味着它应该从流中跳过该类型。例如,输入流是:
"Rudolph is 12 years old"
第一个%s
将捕获"Rudolph"
,%*s
将“读取但忽略”"is"
(即不将其存储在变量中),然后%d
1}}将读取并捕获12
。
我不太清楚你的第二个问题是什么意思。我相信您在询问"%s %*s %d"
格式是否适用于从输入中阅读"q"
。在这种情况下,您应该为单个字符使用不同的格式,例如"%s"
或"%c"
。
根据您更新的问题,您可以轻松地尝试并查看。在我的测试中,它确实适用于"q"
的输入:sscanf
单独留下int
,但会在"q"
中读取。