【发布时间】:2010-01-18 11:45:43
【问题描述】:
在 Windows 上,
char c;
int i;
scanf("%d", &i);
scanf("%c", &c);
计算机跳过从控制台检索字符,因为 '\n' 仍在缓冲区中。 但是,我发现下面的代码运行良好。
char str[10];
int i;
scanf("%d", &i);
scanf("%s", str);
就像上面的例子一样,'\n' 仍然在缓冲区中,但是为什么这次 scanf 成功地从控制台获取了字符串?
【问题讨论】:
-
这里需要更多输入。你在控制台输入什么?你想让它得到什么?上面的代码没有理由不能按预期工作,但这取决于预期的内容。