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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


如上图,第二步中,从缓冲区中逐个取对应的内容,如果取的内容跟设定的类型不一致,就放不进去从而不作改变。字符'b'是不能赋值在变量b上的,所以变量b不作修改保持原值-1.


可是,下面这段代码中,"/n"是赋值给变量b的,按照之前图中的原理,不同类型不作改变,变量b应该保持原值。可是讲师在此处说,“此处会忽略,直到遇到下一个整型为止,所以,b常量被赋值了"/n"之后的45”。
感觉两张图中所讲的scanf函数缓冲区中赋值的原理有些相悖。
不知道是不是因为前张图只调用了一个scanf函数,而后面图中调用了多次scanf的缘故。
求大神解释解释。






2 个回复

倒序浏览
scanf在接收单个变量的时候,在输入值之前,如果我们输入了空格、回车、tab,都会被忽略。
回复 使用道具 举报
4B青年 发表于 2015-7-13 08:10
scanf在接收单个变量的时候,在输入值之前,如果我们输入了空格、回车、tab,都会被忽略。 ...

谢谢大神,采纳!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马