解决VS2015中出现类似于error C4996: ‘scanf/sprintf‘: This function or variable may be unsafe的安全检查错误

用习惯了VS老版本的人当刚使用VS2013/VS2015的时候可能总遇到类似于这样的错误:
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.
error C4996: ‘sprintf’: 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.

也就是所谓的安全检查错误。例如下图中就是一个最简单的程序结果出现这种错误。
在这里插入图片描述
这个问题一般使用以下几种解决办法:

(1)scanf等类似的函数已经不太安全,要想保证程序的安全性,建议以后采用_s结尾的安全版本,但是很多以前的程序可能还是使用不安全的版本,那么下面给出去掉这种错误提示的几种办法。

(2)在VS中新建项目的时候去掉“安全开发生命周期(SDL)检查”即可将错误转变成警告,使得使用不安全版本也不影响编译和运行,如下图所示。
在这里插入图片描述

(3)在头文件包含的最前面,记住是最前面(在include的前面)加上:#define _CRT_SECURE_NO_WARNINGS这个宏定义即可,如下图所示。
在这里插入图片描述

(4)在编译的头文件最前面加上:#pragma warning( disable : 4996)即可,类似于上图,此处不再附图。

5)通过以下步骤Project properties(项目右击属性)->Configuration) Properties(配置属性)->C/C+±>Preprocessor(预处理器)->Preprocessor Definitions(预处理器定义)进入到预处理的定义中,点击按钮 (…),输入:_CRT_SECURE_NO_WARNINGS,使用 “\n” 相隔即可。如下图所示:
在这里插入图片描述
按步骤点击,并在最后添加上_CRT_SECURE_NO_WARNINGS,确定并点击应用即可。
在这里插入图片描述

总之,如果想完全不做安全检查,就使用(2)中的方法或者(5)中的方法,如果只是对某些文件不使用,可以使用(3)和(4)中的方法,个人喜欢使用(2)中的方法,大家可以根据按需选择,不过随着安全性的重要程度在逐步提高,还是建议大家以后使用安全版本。

转载链接:https://blog.csdn.net/dan15188387481/article/details/49622783

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值