永发信息网

c语言整型输入问题:若输入整数则正常运行,但若尝试小数或字符(如7.7或A)则陷入死循环,如何保证程序健壮性

答案:4  悬赏:40  手机版
解决时间 2021-11-08 23:45
c语言整型输入问题:若输入整数则正常运行,但若尝试小数或字符(如7.7或A)则陷入死循环,如何保证程序健壮性
最佳答案
在printf("输入值超范围\n\n");后面加上这样两句:
fflush(stdin);
a = -1;
全部回答
因为定义的就是一个整形,
而且你的scanf("%d",&a)也是用的是%d,
所以输入整形以外的就会出错。
scanf("%d",&a);
这句后面改为
if(scanf("%d",&a) > 0)
{
if(a>=1&&a<=9)
printf("输出a=%d\n\n",a);
else
printf("输入值超范围\n\n");
}
试试
#include
void main()
{
int a;
printf("输入a=");
while(scanf("%d", &a) == 1)
{
if(a>=1&&a<=9)
printf("输出a=%d\n\n",a);
else
printf("输入值超范围\n\n");

printf("输入a=");
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我在做了面部埋线提升后感觉做后悔了,怎么办
沿虚线折叠可以围成一个长方体,它的体积是多
用星月菩提佛珠可以念《文殊心咒吗?》
青岛双铺收费站距离即墨多远
山顶建庙,采用什么运输工具运输材料?
一个人睡觉起来发现嘴巴睡歪了是怎么办
八府堂状根丹吃几盒有效果?效果反弹吗
1.74米的男性身高体重多少才算合适?
珠海首富李健康资产多少?
卡西奴名门KTV地址在什么地方,想过去办事,
重庆什么地方有701建筑胶水批发
6140车床车车外圆10毫米一刀可以吗
老字号骨头庄野生菌怎么去啊,有知道地址的么
上联荷塘月影水中玉,下联是什么
电脑开机出现delf7什么意思
推荐资讯
日语里:“猜测”怎么说?比如说:这只是我的
隔热棒的作用是什么?与被测物体接触的一端为
我命真苦,儿子当着媳妇的面和我发火!是不是
怎样给木料染色
巴彦德勒海,巴彦浩日娲蒙语什么意思
钢框架结构 梁端负弯矩调幅系数这个应该设置
什么样的性格年轻??
逆战天梯自雷会不会封号
家庭是我们的第一所什么
请教:EASY NOMOAL有何区别???谢谢了,大
女字旁一个勺是什么字
上进和知足充突吗?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?