我通常使用fgets()
或getchar()
,但是现在我需要使用getch()
,因为我不想按 enter 发送字符到输入缓冲区。
当我使用fgets()
和getchar()
时,我还使用了:
int c;
while ((r = getchar()) != '\n' && r != EOF){}
但是现在,如果我在getch()
之前使用它,则需要我按下 enter ,这是我不想要的。
是否有任何便携式解决方案来清空输入缓冲区?
答案 0 :(得分:2)
您不能在可移植的上下文because it's a conio.h
, not a stdio.h
function中使用getch()
。
有lengthy threads on this topic,总体假设是无法做到,只能以躲避的方式解决。
我建议您修改代码和应用程序以检查天气,或者是否需要使用getch()
之类的功能来输入天气,或者是否有其他方法可以实现相同的目标。视使用情况而定,通常只是表面上不要按 Enter 。