我想知道如何清除标准输入缓冲区,无论我使用的操作系统如何。
我知道在Windows中我可以使用fflush
和Linux fpurge
,但我想要一个适合两者的解决方案(不一定是函数)。
答案 0 :(得分:1)
根据您的意思"清除标准输入缓冲区",这可能会:
int c;
do c = getchar(); while (c != EOF && c != '\n');
这会吸收最多EOF或换行符,以先到者为准。
如果您不希望它阻止,直到用户按Enter键,那么这不是您想要的主要情况。在那种情况下,你是SOL;没有普遍的机制。