当前位置: 代码迷 >> 综合 >> VS2015错误—严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen(‘fscanf‘、strcmp):This function or variable may be unsafe.
  详细解决方案

VS2015错误—严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen(‘fscanf‘、strcmp):This function or variable may be unsafe.

热度:44   发布时间:2024-02-01 14:40:28.0

在运行时碰到下列错误:

看错误输出,需要将fopen改为fopen_s;

1.最普通的解决方法,就是使用fopen_s替代,

fopen_s()函数的用法:fopen_s(_Outptr_result_maybenull_ FILE ** _File, _In_z_ const char * _Filename, _In_z_ const char * _Mode);

fopen()函数的用法:fopen(_In_z_ const char * _Filename, _In_z_ const char * _Mode);

fopen_s参数要比fopen多一个,并且返回的类型为:errno_t __cdecl,但fopen()返回的类型为:FILE * __cdecl

直接更改fopen_s函数可能并不适合自己的程序,我直接修改后发现不能解决我的问题,错误更多了。因此我选用了第二种方法。

2.直接更改预定义处理:

右击项目,点击“属性”,打开属性页后,点击“预处理器”,在预处理器定义中添加“_CRT_SECURE_NO_DEPRECATE ”,然后点击确定,再点击应用,最后再确定;

设置完后,重新运行,运行成功,解决了错误。


3.将

FILE* pFile=fopen_s(filename,"rb");

改为下列所示:

FILE* pFile;if(fopen_s(&pFile, filename, "rb"))return false;

 

  相关解决方案