我正在尝试使用“point %d %d”之类的格式匹配行。所以我只需要两个这两个整数,然后“点”在格式字符串中被硬编码。据我了解阅读scanf的Linux手册页,这应该可以正常工作。
下一个代码,我想使用的方式,第一次调用 scanf 有效,但是下一个调用 scanf 返回错误代码,并且永远不会从标准输入中获取更多数字(scanf 不会阻止等待来自标准输入的更多输入):
for (;;)
{
scanf("point %d %d", &x, &y);
printf("=> point %d %d\n", x, y);
}
这样,一切都按预期工作:
int x, y;
char s[10];
for (;;)
{
scanf("%s %d %d", s, &x, &y);
printf("=> point %d %d\n", x, y);
}
关于我可能会误解什么的任何建议?
谢谢。