黑马程序员技术交流社区
标题:
迷宫中控制小人移动问题!
[打印本页]
作者:
李旭飞
时间:
2015-6-26 21:51
标题:
迷宫中控制小人移动问题!
视频中为什么要在while循环里加一个scanf吸收字符
我知道不吸收的话地图会打印两次,为什么?
有人说是回车的原因,为什么敲好多回车只算一个
作者:
Milk❤
时间:
2015-6-26 22:02
用scanf函数会吸收掉多余的字符,这样程序就不会一个指令执行两次,比如: w是向上走 如果你一次性打了两个w 缓存中就会有两个ww字符, 当程序执行时,识别到第一个w, 满足执行条件 会打印地图 向上走 , 但是就算你不在输入任何字符, 缓存中还有一个w 他会继续识别,然后打印地图,向上走(如果上一步为空格的话),这就是要用scanf函数吸收掉多余字符的原因
作者:
Dove丶凡
时间:
2015-6-26 22:05
:)我也正纳闷呢
作者:
深蓝的蓝
时间:
2015-6-26 22:09
同求原因啊
作者:
沙睿
时间:
2015-6-26 23:04
二楼正解~~~~~~~~~~~~~~~~~~~~~~
作者:
弹剑
时间:
2015-6-26 23:49
其实我不太明白为何输入一个回车程序会再执行一次.
作者:
zhanghao2744491
时间:
2015-6-26 23:54
大家一起努力吧。大家一起加油
作者:
皇道金丹
时间:
2015-6-27 00:01
我觉得多用一个scanf吸收字符完全是浪费,就该直接在%c前面敲一个空格,这样敲回车的时候就不会出现类似的情况了,在%c前面敲空格就等于已经吸收回车了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2