scanf的使用
- &符号:不要忘记加
- scanf的返回值
- 如果读取成功,返回的是实际读取到的数据的个数
- 如果函数读取失败,返回EOF,EOF的值是-1
- 当我们随机输入三个数时,最后打印出来的结果是3.
对于目前的输入来说,因为我们定义了3个整型变量,所以我们输入的是整型,是数字,scanf()
当然只会认同是数字的输入;你如果输入的有不是数字的,比如说输入了15 56 n,这三个,看一下结果
就会发现打印出来的不是3,是2.
- 但值得注意的是,当你硬要不按人家定义的类型输入,比如让你输入数字,你非要都输入字母,那看一下结果
你就会发现,打印出来的是0。
- 如果你还记得上面灰色方框的两句话,
- 如果读取成功,返回的是实际读取到的数据的个数
- 如果函数读取失败,返回EOF,EOF的值是-1
第一条应该明白了吧,看第二条,对于上一个例子,我输入了3个字母,结果是零,逻辑上来说,就是没正确的读取到数字,所以返回值确实应该是0,程序的结果没有问题。不过为什么不像第二条说的那样返回 -1 呢,是因为我们并不是没有输入东西,换句话说,当出现控制台黑框框的时候,我们起码在键盘上敲了3个字母,我们输入了,但不是按人家要求输入的,所以这并不是读取失败,那怎么样就是读取失败呢。
注意啊,屏幕上的^Z是咱们计算机的快捷键“Ctrl + Z”,它不是输入的,就好比你复制粘贴东西到百度查找,“Ctrl + C和Ctrl + V”是不会显示出来的, 这就相当于是什么都没有输入,那程序就什么都没读取到。所以这时候就返回的是EOF,也就是 -1 .
- 总结:明确
scanf
返回值是 实际读取到的数据的个数,对于EOF或者是Ctrl + Z之类的,目前我还没办法解释,以后就慢慢理解了。