黑马程序员技术交流社区

标题: 迷宫中控制小人移动问题! [打印本页]

作者: 李旭飞    时间: 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