この記事では、C言語でファイルの末尾にデータを追記する方法について解説します。
ファイルを開いて末尾まで移動する方法と、追記モードでファイルを開く方法の2つを紹介します。
初心者の方でも簡単に理解できるように、具体的なコード例も示します。
目次から探す
ファイルの末尾に追記する方法
ファイルにデータを追記する方法について説明します。
C言語では、以下の2つの方法があります。
方法1: ファイルを開いて末尾まで移動する
まず、ファイルを開いて末尾まで移動する方法です。
以下の手順で実装します。
- 追記したいファイルを読み書きモードで開きます。
ファイルが存在しない場合は新しく作成されます。
- ファイルの末尾まで移動します。
fseek関数
を使用して、ファイルポインタを末尾に移動します。
- 追記したいデータをファイルに書き込みます。
fprintf関数
を使用して、ファイルにデータを書き込みます。
- ファイルを閉じます。
以下に、具体的なコード例を示します。
#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: 追記モードでファイルを開く
次に、追記モードでファイルを開く方法です。
以下の手順で実装します。
- 追記したいファイルを追記モードで開きます。
fopen関数
の第2引数にa
を指定します。
ファイルが存在しない場合は新しく作成されます。
- 追記したいデータをファイルに書き込みます。
fprintf関数
を使用して、ファイルにデータを書き込みます。
- ファイルを閉じます。
以下に、具体的なコード例を示します。
#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
というファイルに「追記したいデータ」という文字列を追記しています。
いずれの方法でも、指定したファイルの末尾にデータを追記することができます。
追記のみ行うことが事前にわかっている場合、はじめから追記モードでファイルを開くほうがコードも短くなるのでオススメです。