c语言小问题
答案:3 悬赏:60 手机版
解决时间 2021-01-18 03:03
- 提问者网友:缘字诀
- 2021-01-17 07:00
c语言小问题
最佳答案
- 五星知识达人网友:長槍戰八方
- 2021-01-17 08:06
将while循环中的scanf修改为
scanf("\n%c",&a);追问没用就是错误的情况下,输入有误那句话就会出多次追答所以说,添加了\n也没用?追问这样要输入两次才可以追答while的scanf前加一句getchar();
scanf("\n%c",&a);追问没用就是错误的情况下,输入有误那句话就会出多次追答所以说,添加了\n也没用?追问这样要输入两次才可以追答while的scanf前加一句getchar();
全部回答
- 1楼网友:深街酒徒
- 2021-01-17 09:11
有问题吗?追问每次错误情况下,“您的输入有误,请重新输入”就会出现2次。
- 2楼网友:白昼之月
- 2021-01-17 08:42
在while循环的后面加上一个getchar()函数抵消换行符,或者将scanf里面改成scanf("\n%c",&a);两者都可以.
理解层面上说就是 你在第一个scanf函数时输入一个字符并按了“enter”键对吧?
此时这个字符被赋予了a,而“enter”键本身的换行字符‘\n'也作为一个字符被传到了while循环中的scanf函数中了,所以这里的a被赋予了'\n'的值又执行了一次循环。
所以要做的就是将换行字符给抵消就行了,抵消的方法就是上面两种了。
理解层面上说就是 你在第一个scanf函数时输入一个字符并按了“enter”键对吧?
此时这个字符被赋予了a,而“enter”键本身的换行字符‘\n'也作为一个字符被传到了while循环中的scanf函数中了,所以这里的a被赋予了'\n'的值又执行了一次循环。
所以要做的就是将换行字符给抵消就行了,抵消的方法就是上面两种了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯