今日报错系列:‘fopen‘: This function or variable may be unsafe. Consider using fopen_s instead.

编程知识 更新时间:2023-05-02 05:29:29

VS2017,再用到FILE写入时,遇到如下报错

'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.	

在一顿搜索尝试之后,什么按步骤 【打开项目 >> 属性 >> C/C++ >>预处理器 >> 预处理器定义 】内添加 _CRT_SECURE_NO_WARNIN 等等这些都没有效果。

最终是这样解决的:

在程序最前面添加:#define _CRT_SECURE_NO_DEPRECATE 后解决问题。

#define _CRT_SECURE_NO_DEPRECATE 

举个栗子:

#define _CRT_SECURE_NO_DEPRECATE //加到此处解决问题
#include <iostream>
using namespace std;

void main()
{
	FILE *fp = fopen("myFileFp.txt","w");
	char str[] = "hello world !";
	for (int i = 0; i < 1000; i++)
	{
		fprintf(fp," 第 %d 个 %s ;\n",i,str);
	}
	fclose(fp);
}

文件打开后:从0 - 999 个 hello world !;

下面把找到的资料先放到这,以备参考:

解决fopen、fscanf 在VS中要求替换为fopen_s、fscanf_s的最全解决办法 -------------- ps:在使用MFC中遇到上述问题,可以通过方法三解决方法一:在程序最前面加#define _CRT_SECURE_NO_DEPRECATE;

方法二:在程序最前面加#define _CRT_SECURE_NO_WARNINGS;

方法三:在程序最前面加#pragma warning(disable:4996);

方法四:把scanf、scanf改为scanf_s、fopen_s,具体方法请百度;

方法五:无需在程序最前面加那行代码,只需在新建项目时取消勾选“SDL检查”即可;

方法六:若项目已建立好,在项目属性里关闭SDL也行;

方法七:在工程项目设置一下就行;将报错那个宏定义放到 项目属性 – C/C+±- 预处理器 – 预处理器定义;

方法八:在 项目属性 – c/c++ – 命令行 添加:/D _CRT_SECURE_NO_WARNINGS 就行了。

结束:

分享也是自己对问题再次加深理解的方式,可能不全面,但绝对有用,后面将不断完善~

更多推荐

今日报错系列:‘fopen‘: This function or variable may be unsafe. Consider using fopen_s

本文发布于:2023-04-26 06:35:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/916f2af4f898721797b32ae5bfbf6b0f.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:报错   今日   系列   fopen   fopen_s

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 104515文章数
  • 26215阅读数
  • 0评论数