
【6日でできるC言語入門】テキストファイルの読み書き
C言語で「テキストファイルの読み書き」は、データ保存や外部データの利用、ログ出力など、実用プログラムで必須となる技術です。ファイル操作には「ファイルのオープン」「データの書き込み・読み込み」「ファイルのクローズ」といった一連の手順があります。
ここでは、テキストファイルの基本的な入出力方法を、サンプルプログラムや表を使って分かりやすく解説します。

1.テキストファイルへの書き込み
1.1. ファイルのオープンと書き込み
テキストファイルへの出力は、fopen関数でファイルを開き、fprintf関数で書き込みを行います。
| 関数 | 書式 | 主な用途 |
|---|---|---|
| fopen | FILE* fopen("ファイル名", "モード"); | ファイルを開く |
| fprintf | int fprintf(FILE* fp, "フォーマット", …); | ファイルに書き込む |
| fclose | int fclose(FILE* fp); | ファイルを閉じる |
サンプルプログラム(書き込み)
プロジェクト/ファイル名: Lesson67_1/main.c
#include <stdio.h>
int main(void) {
FILE* fp = fopen("output.txt", "w");
if (fp == NULL) {
printf("ファイルを開けません。\n");
return 1;
}
fprintf(fp, "こんにちは、ファイルへ書き込みます。\n");
fprintf(fp, "C言語でテキストファイル操作を学ぼう。\n");
fclose(fp);
return 0;
}実行後のoutput.txtの内容
こんにちは、ファイルへ書き込みます。
C言語でテキストファイル操作を学ぼう。1.2. fopen関数のモード一覧
| モード | 意味 | ファイルが無い場合 |
|---|---|---|
| "r" | 読み込み | エラー |
| "w" | 書き込み | 新規作成 |
| "a" | 追記 | 新規作成 |
| "r+" | 読み・書き | エラー |
| "w+" | 書き・読み(上書き) | 新規作成 |
| "a+" | 追記・読み | 新規作成 |
2.テキストファイルの読み込み
2.1. 1行ずつ読み込む(fgets関数)
ファイルを1行ごとに読み込むにはfgets関数を使います。
| 関数 | 書式 | 主な用途 |
|---|---|---|
| fgets | char* fgets(配列, サイズ, FILE* fp); | 1行ずつ読み込む |
サンプルプログラム(1行ごとに読み込む)
プロジェクト/ファイル名: Lesson67_2/main.c
#include <stdio.h>
int main(void) {
FILE* fp = fopen("output.txt", "r");
char line[256];
if (fp == NULL) {
printf("ファイルを開けません。\n");
return 1;
}
while (fgets(line, sizeof(line), fp) != NULL) {
printf("%s", line);
}
fclose(fp);
return 0;
}実行結果
「Lesson67_2」ディレクトリに、先ほど作成した「output.txt」をコピーして、プロジェクトのリソースファイルに登録しておきます。
こんにちは、ファイルへ書き込みます。
C言語でテキストファイル操作を学ぼう。2.2. 1文字ずつ読み込む(fgetc関数)
ファイルを1文字ずつ読み込む場合はfgetc関数を使います。
| 関数 | 書式 | 主な用途 |
|---|---|---|
| fgetc | int fgetc(FILE* fp); | 1文字ずつ読み込む |
サンプルプログラム(1文字ごとに読み込む)
プロジェクト/ファイル名: Lesson67_3/main.c
#include <stdio.h>
int main(void) {
FILE* fp = fopen("output.txt", "r");
int ch;
if (fp == NULL) {
printf("ファイルを開けません。\n");
return 1;
}
while ((ch = fgetc(fp)) != EOF) {
printf("%c", ch);
}
fclose(fp);
return 0;
}実行結果
「Lesson67_3」ディレクトリに、先ほど作成した「output.txt」をコピーして、プロジェクトのリソースファイルに登録しておきます。
こんにちは、ファイルへ書き込みます。
C言語でテキストファイル操作を学ぼう。3.ファイル操作のポイント
3.1. ファイルポインタ(FILE*)の役割
- ファイル操作時は必ず「FILE型ポインタ」が必要
- fopenの戻り値がファイルポインタ(FILE*)
- 読み書きはこのポインタを通じて行う
3.2. 読み込みと書き込みの関数まとめ
| 用途 | 代表的な関数 | 説明 |
|---|---|---|
| ファイルのオープン | fopen | ファイルを開く |
| 書き込み | fprintf, fputs | 文字列やフォーマット出力 |
| 読み込み | fgets, fgetc | 1行ごと/1文字ごとに読み込み |
| ファイルを閉じる | fclose | 開いたファイルを閉じる |
まとめ
- C言語でテキストファイルを読み書きするには「fopen」「fprintf/fgets/fgetc」「fclose」が基本
- ファイルのモード("r", "w", "a"など)を使い分ける
- 「1行ずつ」や「1文字ずつ」など、用途に応じて適切な関数を選ぶ
テキストファイル操作の基本を身につけることで、より多彩なプログラム開発ができるようになります!
