【发布时间】:2021-09-10 10:01:08
【问题描述】:
如果您输入整数值,则循环工作正常,但如果您输入一些 ASCII 字符或float 类型值,程序将进入无限循环。这个问题有什么解决办法吗?
从技术上讲,char 是 int 的一种类型,所以这应该不是问题。
#include <stdio.h>
int main(void)
{
int num;
scanf("%d",&num);
while (num < 40)
{
printf("Number is small\n");
scanf("%d",&num);
}
return 0;
}
【问题讨论】:
-
需要查看
scanf的返回值。 -
scanf 在非数字上停止,因此在读取用户的行时最好使用 fgets。
-
暂时不用担心。严重地。有关理由,请参阅this answer。
标签: c while-loop ascii