C高手进!!!scanf判断输入是否正确的方法

来源:百度知道 编辑:UC知道 时间:2024/05/05 04:31:50
想判断scanf("%d",&a)输入是否正确
我写了个语句
int t=0,a;
while(1)
{
t=scanf("%d",&a);
if(!t)printf("Input Error!");
else break;
}
可运行时一旦输入错误马上变成死循环!!为什么!

为什么?
因为输入错误之后,程序又在读错误输出信息
而错误输出信息又是错误的,所以……

改:

int t=0,a;
while(1)
{
t=scanf("%d",&a);
if(!t)
{
printf("Input Error!");
flushall();
}
else
break;
}