【C言語】ファイルの末尾に追記して書き込む方法

この記事では、C言語でファイルの末尾にデータを追記する方法について解説します。

ファイルを開いて末尾まで移動する方法と、追記モードでファイルを開く方法の2つを紹介します。

初心者の方でも簡単に理解できるように、具体的なコード例も示します。

目次から探す

ファイルの末尾に追記する方法

ファイルにデータを追記する方法について説明します。

C言語では、以下の2つの方法があります。

方法1: ファイルを開いて末尾まで移動する

まず、ファイルを開いて末尾まで移動する方法です。

以下の手順で実装します。

  1. 追記したいファイルを読み書きモードで開きます。

ファイルが存在しない場合は新しく作成されます。

  1. ファイルの末尾まで移動します。

fseek関数を使用して、ファイルポインタを末尾に移動します。

  1. 追記したいデータをファイルに書き込みます。

fprintf関数を使用して、ファイルにデータを書き込みます。

  1. ファイルを閉じます。

以下に、具体的なコード例を示します。


#include <stdio.h>
int main() {
    FILE *file = fopen("data.txt", "a+"); // ファイルを読み書きモードで開く
    if (file == NULL) {
        printf("ファイルを開けませんでした。\n");
        return 1;
    }
    fseek(file, 0, SEEK_END); // ファイルポインタを末尾に移動
    fprintf(file, "追記したいデータ\n"); // ファイルにデータを書き込む
    fclose(file); // ファイルを閉じる
    return 0;
}

上記のコードでは、data.txtというファイルに「追記したいデータ」という文字列を追記しています。

方法2: 追記モードでファイルを開く

次に、追記モードでファイルを開く方法です。

以下の手順で実装します。

  1. 追記したいファイルを追記モードで開きます。

fopen関数の第2引数にaを指定します。

ファイルが存在しない場合は新しく作成されます。

  1. 追記したいデータをファイルに書き込みます。

fprintf関数を使用して、ファイルにデータを書き込みます。

  1. ファイルを閉じます。

以下に、具体的なコード例を示します。


#include <stdio.h>
int main() {
    FILE *file = fopen("data.txt", "a"); // 追記モードでファイルを開く
    if (file == NULL) {
        printf("ファイルを開けませんでした。\n");
        return 1;
    }
    fprintf(file, "追記したいデータ\n"); // ファイルにデータを書き込む
    fclose(file); // ファイルを閉じる
    return 0;
}

上記のコードでも、data.txtというファイルに「追記したいデータ」という文字列を追記しています。

いずれの方法でも、指定したファイルの末尾にデータを追記することができます。

追記のみ行うことが事前にわかっている場合、はじめから追記モードでファイルを開くほうがコードも短くなるのでオススメです。

目次から探す