C语言问题循环问题 20

当运行到printf("输入转换的原进制数:");scanf("%ld",&b);时,输入数字无论真假都没有问题,但是一但输入字母,就无限循环了,请大家帮忙改改,想一旦输... 当运行到printf("输入转换的原进制数:");scanf("%ld",&b);时,输入数字无论真假都没有问题,但是一但输入字母,就无限循环了,请大家帮忙改改,想一旦输入错误,就跳到printf("输入转换的原进制数:");scanf("%ld",&b);这里,让用户重新输入,请加大帮忙改改!谢谢 展开
 我来答
xiaolang1201
2011-04-29
知道答主
回答量:40
采纳率:0%
帮助的人:23.1万
展开全部
在输入完了之后,在循环体里scanf()后面添加加下面的语句:
if( getchar() != '\n' )
{
printf("input error!\n");
exit(0);
}
至于为什么这么添加加,你可以百度一下,C语言输入缓冲区,然后你就明白了。希望采纳~
天堂的猫咪元首cJ
2011-04-29 · 超过12用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:99.9万
展开全部
前面用 if(b>=65&&b<=122) printf("");else再加上你后来写的试试.... 我随时在线...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
来自玄妙观忠厚的关羽
2011-04-30
知道答主
回答量:22
采纳率:0%
帮助的人:9.8万
展开全部
贴上源代码吧~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lisheng551
2011-04-30 · TA获得超过149个赞
知道答主
回答量:215
采纳率:0%
帮助的人:168万
展开全部
C的输入输出对数据类型不敏感,输入错误的数据类型可能导致逻辑错误设置是致命错误。
使用字符读入,对每个字符进行判断,如果是数字就计算进变量b中 如果在读到空字符前遇到非数字的字符(除了+ —)就停止循环,并设置输入跟踪变量bool right=0,作为循环判断条件
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
据顺风哈
2011-05-01
知道答主
回答量:11
采纳率:0%
帮助的人:7.4万
展开全部
有这种问题,你贴上代码吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
疯狂的表弟
2011-05-04 · 超过26用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:64.8万
展开全部
while( 65=<(int)(getchar())<122 )
{
printf("error,input again!\n");
}
试试。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式