这个错误信息警告scanf
函数在某些情况下可能是不安全的,因为它不检查缓冲区溢出。为了增强安全性,Microsoft建议使用scanf_s
(一个安全版本的scanf
)来代替它。
有两种解决办法:
方法一:
使用scanf_s
:这是一个更安全的替代方案,但请注意,scanf_s
不是C语言标准的一部分,因此它可能不是跨平台的。
scanf_s不是C语言提供的函数,而是在当前的VS2022中提供的函数。如果你的代码中使用这个函数的话,那么你的代码在其他的编译器上是不能编译通过的。
也就是说,在其他编译器上,比如Dev-C++就不会报错。
方法二:
将_CRT_SECURE_NO_WARNINGS 定义在代码第一行。
#define _CRT_SECURE_NO_WARNINGS 1
如果想当自己的vs创建的.c文件中自动加上这句代码,该怎么做呢?
1.在vs中有一个叫newc++file.cpp的文件,所有的新的文件都是拷贝自newc++file.cpp这个文件
2.如果在newc++file.cpp文件中,加入这句话,就搞定了
1)先找到newc++file.cpp文件
2)右键用记事本打开
3)加上#define _CRT_SECURE_NO_WARNINGS 1
4)新建一个.c文件查看即可看到