一、编译器提示图像:
二、原因:
C4996是VS编译器的一个警告代码,表示在该程序中使用了被标记为不安全或已被弃用的函数。这些函数可能是过时的,或者在未来版本的库中可能会被删除。编译器发出警告提醒开发人员使用更加安全和推荐的函数,以避免可能的安全漏洞。
由于VS编译器对安全性的考虑,对scanf等一系列函数增加了安全性检验,不仅是scanf函数,还包括了含字符串操作函数、文件处理操作函数等。
三、解决方案:
1、使用scanf_s()函数替换scanf()函数
PS:scanf_s()函数是VS自带的函数,其他编译器不支持、不跨平台。
2、添加文件内编译预处理:在当前使用scanf函数的源文件的第一行加上
#define _CRT_SECURE_NO_WARNINGS 1 这句代码
3、添加项目编译预处理
(菜单栏)项目 => 属性 => 配置属性 => C/C++ => 预处理器 => 预处理器定义 => 加入_CRT_SECURE_NO_WARNINGS => 点击应用 => 点击确定
4、找到一个叫newc++file.cpp的文件,在这个文件中加上
#define _CRT_secure_NO_WARNINGS 1,之后每一个新建的源文件中都包含这句代码。
5、在当前使用scanf函数的源文件中加上#pragma warning(disable:4996),取消这个警报和错误。
四、后记:
新手在使用最新一版VS2022时会遇到一些常见问题,VS与学校练习使用的VC之间有诸多不同,会发生一些兼容性设置的问题。因此如果程序无法正常运行,希望如上主要针对scanf函数问题的解决方案会对你有所帮助。