【发布时间】:2015-10-18 16:01:06
【问题描述】:
int n = 0;
int temp = 0;
while ((temp != 1) || (n <= 0)){
puts("enter array count");
temp = scanf("%d", &n);
printf("\n%d\n", temp);
}
我需要检查输入值是否必须是整数并且大于 0。
scanf 返回成功设置值的计数,如果不是整数,则返回 0。
所以问题是当我输入除数字之外的任何字符时,它会开始未完成的循环
为什么?
【问题讨论】:
-
阅读 this 并注意返回值的含义。
-
那么我的错误是什么?我看到零结果,但为什么循环开始并永远执行?
-
@t0mm13b OP 已经知道返回值了。
-
我几乎无法理解这个错误。好的,我该如何解决?
-
你可以输入一个实际的数字,然后循环将退出。