【C言語】fopen_s関数で開いたファイルに書き込みする方法

この記事では、C言語でファイルに書き込む方法について解説します。

fopen_s関数を使ってファイルを開き、fprintf関数を使ってデータを書き込む方法を学びます。

目次から探す

fopen_s関数とは

fopen_s関数は、C言語でファイルを開くための関数です。

この関数を使用することで、ファイルを読み込むだけでなく、書き込むこともできます。

fopen_s関数の概要

fopen_s関数は、以下のような形式で宣言されています。


errno_t fopen_s(FILE** pFile, const char* filename, const char* mode);

この関数は、ファイルポインタを指定されたファイルに関連付けるために使用されます。

引数説明
pFileファイルへのポインタを格納する変数へのポインタ。ファイルが正常にオープンされると、この変数にファイルへのポインタが格納されます。
filenameオープンするファイルのパスとファイル名を表す文字列。
modeファイルを開くモードを指定する文字列。以下のいずれかの値を指定します:

modeの種類

モード説明
“r”読み込みモード。既存のファイルを開きます。ファイルが存在しない場合はエラーになります。
“w”書き込みモード。新しいファイルを作成します。既存のファイルがある場合は、ファイルの内容が削除されます。
“a”追記モード。ファイルの末尾にデータを追加します。ファイルが存在しない場合は新しいファイルが作成されます。
“rb”バイナリ読み込みモード。バイナリファイルを読み込みます。
“wb”バイナリ書き込みモード。バイナリファイルを作成します。
“ab”バイナリ追記モード。バイナリファイルの末尾にデータを追加します。

読み書き両方行いたい場合は、r+w+のように+をつけることで行えるようになります。

fopen_s関数の使い方

fopen_s関数を使用するためには、まずファイルポインタを宣言し、その後でfopen_s関数を呼び出す必要があります。

以下に、ファイルを書き込む例を示します。


#include <stdio.h>
int main() {
    FILE* pFile;
    errno_t err;
    err = fopen_s(&pFile, "sample.txt", "w");
    if (err != 0) {
        printf("ファイルのオープンに失敗しました。\n");
        return 1;
    }
    //ファイルへの書き込み処理...

    fclose(pFile);
    return 0;
}

この例では、まずファイルポインタpFileを宣言し、fopen_s関数を呼び出しています。

第1引数には、ファイルポインタへのポインタである&pFileを指定し、第2引数には、書き込むファイルのパスであるsample.txtを指定しています。

ファイルへの書き込みを行うために、第3引数には、書き込みモードであるwを指定しています。

fopen_s関数の戻り値とエラーハンドリング

fopen_s関数の戻り値は、エラーコードを表すerrno_t型です。

エラーコードが0以外の場合、ファイルのオープンに失敗しています。

上記の例では、fopen_s関数の戻り値をerr変数に代入し、その値が0以外の場合にエラーメッセージを表示しています。

ファイルのオープンに成功した場合は、fprintf関数を使用してファイルに書き込んでいます。

ファイルの操作が終了したら、fclose関数を使用してファイルを閉じることを忘れないようにしましょう。

ファイルへの書き込み

ファイルをオープンした後は、fprintf関数fputc関数などを使用して、データをファイルに書き込むことができます。

以下は、fprintf関数を使用してファイルに文字列を書き込む例です。


#include <stdio.h>
int main() {
    FILE* file;
    errno_t err;
    // ファイルをオープン
    err = fopen_s(&file, "sample.txt", "w");
    if (err != 0) {
        printf("ファイルのオープンに失敗しました。\n");
        return 1;
    }
    // ファイルに文字列を書き込む
    fprintf(file, "Hello, World!");
    // ファイルをクローズ
    fclose(file);
    return 0;
}

上記の例では、fprintf関数を使用して、ファイルに文字列Hello, World!を書き込んでいます。

ファイルのクローズ

ファイルへの書き込みが完了したら、必ずファイルをクローズする必要があります。

ファイルをクローズすることで、ファイルへのアクセスが終了し、他のプログラムやプロセスがファイルにアクセスできるようになります。

ファイルをクローズするためには、fclose関数を使用します。

fclose関数は、ファイルポインタを引数に取り、ファイルをクローズします。

以下は、ファイルをオープンし、書き込みを行った後にファイルをクローズする例です。


#include <stdio.h>
int main() {
    FILE* file;
    errno_t err;
    // ファイルをオープン
    err = fopen_s(&file, "sample.txt", "w");
    if (err != 0) {
        printf("ファイルのオープンに失敗しました。\n");
        return 1;
    }
    // ファイルに文字列を書き込む
    fprintf(file, "Hello, World!");
    // ファイルをクローズ
    fclose(file);
    return 0;
}

上記の例では、ファイルをオープンし、Hello, World!という文字列をファイルに書き込んでいます。

最後に、fclose関数を使用してファイルをクローズしています。

以上が、C言語でファイルへの書き込みを行う方法の基本的な説明です。

ファイルへの書き込みは、プログラミングにおいて非常に重要な操作の一つですので、しっかりと理解しておきましょう。

目次から探す