今日报错系列: 'fopen':この関数または変数は安全でない可能性があります。代わりにfopen_sの使用を検討してください。

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!;
ここに画像の説明を挿入

ここで見つけた情報を参考にしてください。

VSのfopenおよびfscanf要件を解決してfopen_sおよびfscanf_sに置き換えるための最も完全なソリューション-------------- ps:MFCの使用中に上記の問題が発生した場合は、最初の方法を解決するための3番目の方法:プログラムの先頭に#define_CRT_SECURE_NO_DEPRECATEを追加します。

方法2:プログラムの先頭に#define_CRT_SECURE_NO_WARNINGSを追加します。

方法3:プログラムの先頭に#pragmawarning(disable:4996)を追加します。

方法4:scanf、scanfをscanf_s、fopen_sに変更します。特定の方法については、Baiduに連絡してください。

方法5:プログラムの先頭にそのコード行を追加する必要はありません。新しいプロジェクトを作成するときは、[SDLチェック]のチェックを外してください。

方法6:プロジェクトが確立されている場合は、プロジェクトのプロパティでSDLを閉じることもできます。

方法7:プロジェクトに設定するだけです。エラーを報告したマクロ定義をプロジェクトのプロパティに配置します-C / C +±-プリプロセッサ-プリプロセッサ定義。

方法8:プロジェクトのプロパティ-c / c ++-コマンドラインに、/ D_CRT_SECURE_NO_WARNINGSを追加します。

終わり:

共有することは、問題への理解を深める方法でもあります。包括的ではないかもしれませんが、間違いなく便利であり、今後も改善されていきます〜

おすすめ

転載: blog.csdn.net/hwx802746/article/details/113177012