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

标签 c++ c buffer

我想知道如何清除标准输入缓冲区,无论我使用的是什么操作系统。 我知道在 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/

相关文章:

jquery - 使用缓冲区中的 drawImage 更新 Canvas 不要使用 drawImage 应用操作

c - C 中的刷新缓冲区

c++ - 仅将在 C++ 中定义了 operator+ 的对象作为参数

C++ "Named Parameter Idiom"与 Boost::Parameter 库

C - "Error: Invalid operands to binary != ..."

c - 如何在具有一位数字的月份上扫描 "0"?

java - 有时写入文件 block

c++ - 如何传递以 "size determined at run time"作为引用的动态分配数组?

c++ - 在 C++ 中使用 map 而不是 array 来保护在数组边界之外的搜索?

c - 溢出的变量的值是多少?