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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白昼那知夜的黑   /  2015-5-25 15:15  /  7166 人查看  /  33 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

13673696542 发表于 2015-5-27 20:01
今天测试了一下,的确是被第二个scanf接收了。不过我看了上课的笔记,老师当时说scanf会将空格、回车、制 ...

额,这个.............
回复 使用道具 举报
又学到一点了,
回复 使用道具 举报
你从键盘输入一个整数,然后回车,那么这个整数和回车都会被送到电脑中,然后scanf会获取你输入的整数,回车还保留在电脑里等待下一个scanf去获取,如果没有去专门获取,那么这个回车就会在函数结束的时候被释放掉,我是这么理解的。
回复 使用道具 举报
13673696542 发表于 2015-5-27 20:01
今天测试了一下,的确是被第二个scanf接收了。不过我看了上课的笔记,老师当时说scanf会将空格、回车、制 ...

scanf会将连续输入的多个空格回车和Tab忽略掉;
scanf如果去获取多个整数,那么你输入的多个空格回车以及Tab也被系统忽略掉
回复 使用道具 举报
不会的  
回复 使用道具 举报
不会,回车只是表示输入的字符串结束
回复 使用道具 举报
有点晕了。。。。

回复 使用道具 举报
学习了:handshake
回复 使用道具 举报
回复 使用道具 举报
这个如果%d后面不加\n,你直接回车的话'\n'应该是被存到了缓冲区内然后被后面的句子给吸收掉了,想要破的话就得在%d后加\n,然后键盘中原样输入(需2次回车)才可以。
回复 使用道具 举报
如果%d中不加\n符合时,你键盘输入第一个字符然后回车,此时回车符应该会被存入输入缓冲区内,接着被下一个scanf()语句接收。想要破这个问题,需要在第一个scanf中%d后面加'\n',这样你输入回车就与格式控制相同,则不会被存入缓冲区内。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马