1.认识scanf.
1.scanf的基本用法
scanf() 函数⽤于读取⽤⼾的键盘输⼊。程序运⾏到这个语句时,会停下来,等待⽤⼾从键盘输⼊。⽤⼾输⼊数据、按下回⻋键后,
scanf() 就会处理⽤⼾的输⼊,将其存⼊变量。它的原型定义在头⽂件<stdio.h> 。
scanf() 的语法跟printf() 类似。
换言之就说 你的 scanf是让你输入的内容给到计算机进行编码,再用printf输出到编译器上(就是你呈现的效果),然后就能呈现出来.
上⾯⽰例中,
scanf()
的第⼀个参数%d ,表⽰⽤⼾输⼊的应该是⼀个整数。%就是⼀个占位符,%是占位符的标志,d表示第⼆个参数&x表⽰,将⽤⼾从键盘输⼊的整数存⼊变量
i 。
注意: scanf()
传输的不是数值而是地址,必须在变量前加上&.意味着即将变量x的地址指向⽤⼾输⼊的值。还有就是如果这里是指针变量(例如字符串变量),那就不用即将变量&
.
scanf()
它还会自动处理占位符,例如自动过滤空白字符,包括空格. 换行符。哪怕你有多少的空格都没事,另外就说回车分成多少行也不影响。
2.scanf的返回值
如果`scanf()`它输出的返回值是⼀个整数,表⽰成功读取的变量个数。
如果没有读取任何项,或者匹配失败,则返回0。如果在成功读取任何数据之前,发⽣了读取错误或者遇到读取到⽂件结尾,则返回常量EOF
EOF 全称 end of file 表示文件结束标志
2.scanf出现在vs2022上的bug
1.scanf在 “vs” 上不安全.
一般我们在使用scanf的时候,系统会提示报错,并且会让我们去使用scanf_s函数。
2.解决方法
如果想要这个提示失效的话,可以去使用_CRT_SECURE_NO_WARNINGS。
怎么使用呢
将_CRT_SECURE_NO_WARNINGS变成#define_CRT_SECURE_NO_WARNINGS 放在源文件的第一行
那怎么能在文件一打开就出现这个语句呢
#其实在vs上新建一个.c/.cpp文件的时候,其实是拷贝了一个叫new++file.cpp的文件
#那么我们就在这个文件上加上这行话,它就会以后新建出文件就能出现这行代码。
步骤一
下载Everything,查找这个文件
注意只有你下载的vs的地址,才是那是它这个文件的真正地址。
步骤二
找到文件后打开记事本,并且输入代码,保存它
可能出现保存不了的情况(需要你的管理员权限)
解决方法:拷贝文件到你的桌面,再去改,例如文件转移,创建两个任务管理器,继续上一步的找到那个文件的位置进行替换。
3.解释原因
这是在vs上独有的错误
会有人说为什么不用scanf_s
**因为就像我们刚刚提到这是vs独有的错误(其他的编译器不会出现),scanf_s也不是c语言标准提供,所以方便我们使用,建议使用scanf。
4.小错误
原本来说Ctrl+z,就会让scanf发生错误,
但是只有vs上需要按三次。