1

可能重复:
使用 fflush(stdin)

我的代码是:

scanf("%d", &_choice);
fflush(stdin);
gets(input);

fflush(stdin);用来删除.'\n'之后留下的字符scanf

但是,我发现它不起作用,并gets自动获取'\n'字符并继续。

我通过使用getchar()而不是解决了它,fflush但我仍然无法弄清楚为什么fflush不起作用......

编辑:我现在了解fflush仅用于输出流。但是有没有stdin从垃圾中“清理”的命令?

4

1 回答 1

4

因为fflush是用于输出流。

无论如何,fflush不​​是为了“删除\n字符”......

于 2013-01-13T00:00:18.963 回答