如何避免在便携式上下文中按 enter 键清空输入缓冲区?

How to avoid pressing enter in a portable context to empty the input buffer?

问题

我平时用fgets()或者getchar(),现在我需要用getch(),因为我不想按enter ] 将字符发送到输入缓冲区。

我试过的

当我使用fgets()getchar()时我还使用了:

int c;
while ((r = getchar()) != '\n' && r != EOF){}

但现在如果我在 getch() 之前使用它,它需要我按 enter,我不想这样做。

是否有清空输入缓冲区的便携式解决方案?

您不能在可移植环境 because it's a conio.h, not a stdio.h function 中使用 getch()。 有 lengthy threads on this topic 并且总体假设是无法完成,只能以狡猾的方式解决。

我建议你修改你的代码和应用程​​序来检查天气你是否需要输入类似getch()的功能,或者是否有其他方法可以做到达到相同的目标。根据使用情况,不按 Enter.

通常只是装饰性的