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を追加します。
終わり:
共有することは、問題への理解を深める方法でもあります。包括的ではないかもしれませんが、間違いなく便利であり、今後も改善されていきます〜