读书人

这是无限的标准输入流么?解决办法

发布时间: 2013-08-04 18:26:16 作者: rapoo

这是无限的标准输入流么?

#include <stdio.h>

void main()
{
int t;

while(1)
{
printf("1-10:");
scanf("%d",&t);
if(t<1 || t>10)
{
printf("invalid input!\n");
continue;
}
//do_something()
break;
}

return;
}


如上代码,规范输入是没有问题的,一次调试中无意间按到了左方向键,屏幕上没有任何显示,然后再输入字符,按回车,就会陷入死循环,无限地输出 “1-10:invalid input!”。这是为什么啊,按了方向键为什么会产生无限的标准输入流?不然也不会死循环把,因为有scanf("%d",&t); C 调试
[解决办法]
缓冲没有清楚的问题。

请参考http://blog.csdn.net/mougaidong/article/details/6882345

读书人网 >C++

热点推荐