【发布时间】:2016-03-29 14:13:17
【问题描述】:
这就是我的程序: 该程序扫描并打印数字,但如果输入字符,我希望它打印“错误”。如果我把“a”之类的东西放进去,它会产生一个无限循环。为什么?
#include <stdio.h>
int main(void){
printf("Enter a number: \n");
int a;
while(scanf("%d",&a)!=EOF){
if(46<'a'<58){
}
else{
printf("Mistake.");
return -1;
}
printf("%d\n",a);
}
}
【问题讨论】:
-
我认为你最好扫描每个字符而不是每个整数。
-
46
-
"如果输入了一个字符,我希望它打印“错误”" --
scanf( "%d", ... )如果输入了一个字符,将会失败,因为一个字符与输入不匹配为"%d"。你甚至不会进入循环。