问题
我通常使用fgets()
或getchar()
,但现在我需要使用getch()
,因为我不想要按 enter 将字符发送到输入缓冲区。
我尝试了什么
当我使用 fgets()
和 getchar()
时,我还使用了:
int c;
while ((r = getchar()) != '\n' && r != EOF){}
但现在如果我在 getch()
之前使用它,它需要我按 enter,这是我不想要的。
是否有任何可移植解决方案可以清空输入缓冲区?
最佳答案
您不能在可移植上下文中使用 getch()
because it's a conio.h
, not a stdio.h
function 。
有lengthy threads on this topic总体假设是这是不可能完成的,只能以一种狡猾的方式解决。
我建议您修改代码和应用程序来检查天气是否需要使用类似getch()
的函数进行输入,或者是否有其他方法可以做到达到同样的目标。根据用例,不按 Enter 通常只是装饰性的。
关于c - 如何避免在可移植上下文中按 Enter 清空输入缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51476437/