VS系列编译器对函数不安全报错的解决办法

1.定义预定义符号

_CRT_SECURE_NO_WARNINGS

错误信息:error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

意为:scanf函数不安全,考虑使用scanf_s来替换,如果不想看到错误,也可用使用_CRT_SECURE_NO_WARNINGS

即在你使用不安全函数的源文件(.c)文件中的第一行,一定是第一行加上一句话:

#define _CRT_SECURE_NO_WARNINGS 1

一劳永逸的解决办法

可以在每一次新建的源文件中就包含这句代码。

方法:在VS的安装路径下搜索:newc++file.cpp这个文件,在文件中加上:

#define _CRT_SECURE_NO_WARNINGS 1

注:在不同版本的VS环境下,newc++file.cpp这个文件的位置不同,也可能存在多个,建议多尝试一下。

常规修改可能要用nodpad++打开才可以修改,其实不用nodpad++也可以:

先把此文件复制到桌面,修改后拖回到此文件夹中替换。(在此文件夹中修改不了,在桌面上可以)。

2.设置项目属性的预处理

打开工程的【解决方案资源管理器】,右键单击项目名称再点击【属性】,在属性页中:【配置属性】——【C/C++预处理器】——【预处理器定义】中增加:_CRT_SECURE_NO_WARNINGS,每个符号是用分号隔开的。

这种方法,每一次项目都要设置,可能比较麻烦。

3.在创建项目时关闭安全提示

新建项目:

选择【Visual C++】——【Win32控制台应用程序】——【设置项目名称】——【设置项目位置】——【确定】到下一页,点击【下一步】,不是点击【完成】:勾选【空项目】,去掉【安全开发生命周期(SDL)检查】,点击完成即可,以后只会报警告,不会报错,可以忽视这个警告。

你可能感兴趣的:(安全,c#,c++)