本来输入整型,但不小心输入英文后打印循环了?
老师好,这里是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 星