A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© kakam 中级黑马   /  2016-7-13 00:14  /  1023 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

/Users/apple/Desktop/screenshot.png
如图在循环中涉及到字符输入的时候,经常要加rewind(stdin)这个清除缓冲区的函数.

如果不加经常出差错,如输入R 会打印两次:
请问当输入R的时候为什么会出现两次,原理是什么样的?
谢谢

7 个回复

倒序浏览
回复 使用道具 举报
你这是啥?发一个你屏幕上的图片地址当做截图?没看到具体的图,不过打印两次有可能是回车也被认为是一个字符了
回复 使用道具 举报





可以看到吗?
回复 使用道具 举报


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

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

回复里面有图
回复 使用道具 举报
你不写rewind(stdin);scarf会先从缓冲区拿数据
回复 使用道具 举报
kakam 中级黑马 2016-7-13 21:48:07
8#
现在只要有scanf 和 char  后面就加rewind(stdin)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马