WINDOWS下的键盘输入估计是把一个以回车为结束的内容放入一个消息,如果输入了3个回车就有3个消息,而fflush()只能清除一次消息的内容。
我现在输入一次内容,然后延时5秒,然后fflush,再捕捉发现还是有内容啊,怎么清除前面几次的啊?
下面是我写的程序
int _tmain(int argc, _TCHAR* argv[])
{
char ch1;
while((ch1=getchar())!='\n')
printf("\c",ch1);
printf("\n");
Sleep(5000);
fflush(stdin);fflush(stdout);
//我的目的是想fflush之后,5秒里的输入不起作用
while(ch1=getchar()){
while((ch1=getchar())!='\n')
printf("\c",ch1);
printf("\n");
}
getchar();
return 1;
}
![](https://imgsa.baidu.com/forum/w%3D580/sign=e5e49b07bd8f8c54e3d3c5270a2b2dee/6f698c5494eef01f709c452ce9fe9925be317db1.jpg)
我现在输入一次内容,然后延时5秒,然后fflush,再捕捉发现还是有内容啊,怎么清除前面几次的啊?
下面是我写的程序
int _tmain(int argc, _TCHAR* argv[])
{
char ch1;
while((ch1=getchar())!='\n')
printf("\c",ch1);
printf("\n");
Sleep(5000);
fflush(stdin);fflush(stdout);
//我的目的是想fflush之后,5秒里的输入不起作用
while(ch1=getchar()){
while((ch1=getchar())!='\n')
printf("\c",ch1);
printf("\n");
}
getchar();
return 1;
}
![](https://imgsa.baidu.com/forum/w%3D580/sign=e5e49b07bd8f8c54e3d3c5270a2b2dee/6f698c5494eef01f709c452ce9fe9925be317db1.jpg)