【发布时间】:2014-12-10 14:52:15
【问题描述】:
这里我有一段简化的代码,它询问并在循环中显示一个数字,它适用于我输入的所有数字,但如果我输入一个字母或特殊字符 (!"£$%^&* -_=+ 等)它会进入精神状态并跳过输入。
#include<stdio.h>
int number;
int main()
{
do
{
system("cls");
printf("Enter a number");
scanf("%d",&number);
}
while(1==1);
}
我的问题是,我能做些什么来阻止这种情况的发生?是否有一些代码可以过滤掉这种废话或者 scanf 几乎毫无价值?
//编辑:不知何故被标记为重复,呵呵。
【问题讨论】:
-
scanf返回一个值,为什么不检查一下,就像你应该对所有 C 库函数做的那样? -
@JensGustedt 这需要一个额外的库,1==1 简单明了。
-
@WhipItOut Just
1更简单 -
如果你对 C 的理解不够透彻,无法知道
while(1)在做什么,那么你绝对应该使用true。
标签: c function loops selection scanf