C++Visual Studioのfopenエラー

Visual Studioのfopenエラー

fopenでエラーが起きてしまう

ファイルの読み込みで、fopenを使うと思います。
しかし、VisualStudioでは、このようなエラーが起きてしまいました。

重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態
エラー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.

エラーC4996で、fopenは安全じゃないかもしれないから、代わりにfopen_sを使ってねーということです。

対処

エラーを回避する

始めにエラーを受け付けない方法です。
fopenでも使えるので問題ないと思います。

#pragma warning(disable : 4996)

ちなみに、研究室のプログラムがこのように書かれていました。

エラー指示に従う

Consider using fopen_s instead.

つまり、fopen_sを使いなさいよーということです。
これに従って、fopen_sを使っていきます。

#include <stdio.h>
#include <iostream>
#include <fstream>

using namespace std;

FILE *fp;
errno_t error;

void main(){
if ((error = fopen_s(&fp,"test.txt", "w")) == NULL) {
		printf("ファイルオープンエラー");
		exit(EXIT_FAILURE);
        }
fprintf(fp, "HelloWorld¥n");
fclose(fp);
}


このサイトを参考にしました。

解決

上記のプログラムのように、書き換えることで、エラーは出なくなります。
fopenfopen_sを使うときは、上のように、例外処理で記述した方がいいですね。