本来输入整型,但不小心输入英文后打印循环了?


老师好,这里是int型,输入不符合条件如图1,只打印一遍,返回重新输入,是正常的;但是假如不小心输入一个英文字符,就会一直打印……如何让输入小写英文,也只打印一遍输入错误呢?
19
收起
正在回答
2回答
因为你要读取的是数字,输入一个字符时, scanf函数会失败,但是这个字符还在流里面没有被读出来,所以就死循环动不了了,加入getchar(),下面参考代码可以在输入字符的情况下不再循环:
NSLog(@"请选择排数[1,7]:");
int num;
scanf("%d",&num);
getchar();
if (num < 1||num > 8 ) {
NSLog(@"重输");
[self selectRows];
}else {
selectRow = num;
NSLog(@"你选择的排数是:%d",num);
[self selectCol];
}
iOS入门:基础语法与常用控件
- 参与学习 1337 人
- 提交作业 712 份
- 解答问题 1878 个
很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星