c语言的检查输入错误提示重新输入的问题

如果我需要用户输入一个数字,但是输入的却是一个英文字符如a,或者数字加一个英文字符1a,a1等错误输入,碰到这种情况后该怎么做让用户重新输入正确。

写一个循环 把接收输入的代码放循环里
接收一个输入的字符串
然后自己写方法判断输入内容是否合法
如果合法 就转换为类型指定类型 然后跳出循环 不合法就继续循环输入。。。。‘

如果转换类型的函数 可以返回是否转换成功 或者 会弹出 异常 那么只要判断一下返回值 或 处理一下异常捕获 就可以不用自己写方法判断输入是否合法了。。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-20
//可以用下面的方法
//scanf在接受到与%d不符的输入时,返回值是0,否则是1
//另外123b这种输入不会出错的,会把123赋值给i
//b123则不会了
#include<stdio.h>

int main(){
int i;
while(scanf("%d", &i)==0){
getchar();
}
return 0;
}

本回答被网友采纳
第2个回答  2014-12-20
组个判断字符是否大于'0'并且小于'9',是的话跳出循环,否则重新输入追问

数字大的话就不行了

追答

数大?输入的是字符串,不是整型

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网