黑马程序员技术交流社区

标题: 关于scanf函数中缓冲区赋值的疑惑 [打印本页]

作者: 杨远鹏    时间: 2015-7-12 23:09
标题: 关于scanf函数中缓冲区赋值的疑惑

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


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







作者: 4B青年    时间: 2015-7-13 08:10
scanf在接收单个变量的时候,在输入值之前,如果我们输入了空格、回车、tab,都会被忽略。
作者: 杨远鹏    时间: 2015-7-14 21:20
4B青年 发表于 2015-7-13 08:10
scanf在接收单个变量的时候,在输入值之前,如果我们输入了空格、回车、tab,都会被忽略。 ...

谢谢大神,采纳!




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