黑马程序员技术交流社区

标题: 关于有char参与时的缓冲区问题 [打印本页]

作者: kakam    时间: 2016-7-13 00:14
标题: 关于有char参与时的缓冲区问题
/Users/apple/Desktop/screenshot.png
如图在循环中涉及到字符输入的时候,经常要加rewind(stdin)这个清除缓冲区的函数.

如果不加经常出差错,如输入R 会打印两次:
请问当输入R的时候为什么会出现两次,原理是什么样的?
谢谢
作者: kakam    时间: 2016-7-13 00:15

作者: wangxiaopang    时间: 2016-7-13 00:19
你这是啥?发一个你屏幕上的图片地址当做截图?没看到具体的图,不过打印两次有可能是回车也被认为是一个字符了
作者: kakam    时间: 2016-7-13 00:21





可以看到吗?
作者: kakam    时间: 2016-7-13 00:23


是这个
作者: kakam    时间: 2016-7-13 00:28
wangxiaopang 发表于 2016-7-13 00:19
你这是啥?发一个你屏幕上的图片地址当做截图?没看到具体的图,不过打印两次有可能是回车也被认为是一个字符 ...

貌似是这样的,可是enter 在这里不是执行命令吗?怎么能当字符吗?当了字符就不能够当命令了啊.

回复里面有图
作者: 13453650568    时间: 2016-7-13 15:40
你不写rewind(stdin);scarf会先从缓冲区拿数据
作者: kakam    时间: 2016-7-13 21:48
现在只要有scanf 和 char  后面就加rewind(stdin)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2