VS中fopen、sprintf、fscanf等函数不安全的的简单全面解决办法

时间:2024-03-20 21:10:06

很多新人(比如我)在开始使用vs2017写c代码的时候,经常会遇到函数不安全报错的问题,如VS2017中fopen、sprintf、fscanf等函数不安全的的简单全面解决办法
有如下三种解决办法(个人推荐第三种):

1.文件包含 #define _CRT_SECURE_NO_WARNINGS

这里又分为两种情况:

(1)在 .c 文件中

有些项目比较简单,可能一个.c文件就能完成代码,这个时候把#define _CRT_SECURE_NO_WARNINGS 放在当前.c文件的第一行就可以了(注意:一定要是第一行)。

(2)在自定义 .h 文件中

在项目有自定义头文件时,也可以把 #define _CRT_SECURE_NO_WARNINGS 放在自定义的头文件中,当头文件有 #pragma once 时(防止头文件重复包含),上面的代码也可以放在其之后,如
VS2017中fopen、sprintf、fscanf等函数不安全的的简单全面解决办法
此时在包含头文件时,自定义的头文件应该放在第一行,如VS2017中fopen、sprintf、fscanf等函数不安全的的简单全面解决办法
原理很简单,就不赘述了。

2.预处理器定义

项目–>属性–>C/C++–>预处理器–>预处理器定义,编辑右边输入框加入:_CRT_SECURE_NO_WARNINGS
保存。如:
VS2017中fopen、sprintf、fscanf等函数不安全的的简单全面解决办法

3.关闭SDL检查

项目–>属性–>C/C++–>常规->SDL检查,选择否
VS2017中fopen、sprintf、fscanf等函数不安全的的简单全面解决办法
个人觉得第三种方法最好用,简单一点。

注意:以上每种办法修改后都只适用当前项目,有新项目的时候,要重新设置。

本人新人一枚,如有描述不当之处还请各位指正。