如何避免在便携式上下文中按 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.
通常只是装饰性的
问题
我平时用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.