我想知道如何清除标准输入缓冲区,无论我使用的是什么操作系统。
我知道在 Windows 中我可以使用 fflush
和 Linux fpurge
,但我想要一个适用于两者的单一解决方案(不一定是函数)。
最佳答案
根据“清除标准输入缓冲区”的含义,这可能会:
int c;
do c = getchar(); while (c != EOF && c != '\n');
这最多吸收 EOF 或换行符,以先到者为准。
这不是您想要的主要情况是,如果您不希望它在用户按下 Enter 之前可能会阻塞。在那种情况下,你就是 SOL;没有通用的机制。
关于c++ - 独立于操作系统的清除缓冲区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46207765/