独立于操作系统的清除缓冲区

时间:2017-09-13 22:31:38

标签: c++ c buffer

我想知道如何清除标准输入缓冲区,无论我使用的操作系统如何。 我知道在Windows中我可以使用fflush和Linux fpurge,但我想要一个适合两者的解决方案(不一定是函数)。

1 个答案:

答案 0 :(得分:1)

根据您的意思"清除标准输入缓冲区",这可能会:

int c;
do c = getchar(); while (c != EOF && c != '\n');

这会吸收最多EOF或换行符,以先到者为准。

如果您不希望它阻止,直到用户按Enter键,那么这不是您想要的主要情况。在那种情况下,你是SOL;没有普遍的机制。