关于新版VS编辑环境下提示fopen不安全的问题报C4996错误的解决办法

最近在学习C语言的一些文件操作的函数,发现使用fopen的时候,报了一个错误

错误内容如下(直接CV过来的)

严重性	代码	说明	项目	文件	行	源	禁止显示状态
错误	C4996	'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable 
deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.	ConsoleApplication1	 
C:Usersadminsource
eposConsoleApplication1ce.c	8	生成	

后面查看了相关的文档,最后搞明白了解决办法

关于新版VS编辑环境下提示fopen不安全的问题报C4996错误的解决办法

解决办法-1

vs2013以上,需要在头文件前添加

#define _CRT_SECURE_NO_WARNINGS

否则就会存在安全检查错误

解决办法-2

//使用fopen_s	
FILE* file_f = NULL;
fopen_s("t.txt","w+",file_f);

fopen和fopen_s的区别

fopen-源码 只需要提供两个参数,一个文件名称,一个模式

_ACRTIMP FILE* __cdecl fopen(
        _In_z_ char const* _FileName,
        _In_z_ char const* _Mode
        );

fopen_s-源码 需要提供三个参数 第一个是文件指针,第二个文件名,第三个是模式

_ACRTIMP errno_t __cdecl fopen_s(
            _Outptr_result_maybenull_ FILE**      _Stream,
            _In_z_                    char const* _FileName,
            _In_z_                    char const* _Mode
            );
原文地址:https://www.cnblogs.com/yiniantt/p/14283374.html