C言語でファイルを読み書き!「ファイル操作(fopen, fclose, fprintf など)」をやさしく解説
C言語では、テキストファイルやバイナリファイルの読み書きが可能です。
その際に使うのが、fopen
, fclose
, fprintf
, fscanf
などの関数です。
本記事では、初心者にもわかりやすく、ファイル操作の基本を解説します。
ファイル操作の流れ
- ファイルを開く(
fopen
)
- データの読み書き(
fprintf
, fscanf
など)
- ファイルを閉じる(
fclose
)
fopen:ファイルを開く
FILE *fp;
fp = fopen("data.txt", "w"); // 書き込み用に開く
"r"
:読み込み
"w"
:書き込み(上書き)
"a"
:書き込み(追記)
"r+"
, "w+"
:読み書き両用
fprintf:ファイルに書き込む
fprintf(fp, "名前:%s\n", "Taro");
fprintf(fp, "年齢:%d\n", 20);
fscanf:ファイルから読み取る
char name[20];
int age;
fscanf(fp, "名前:%s\n", name);
fscanf(fp, "年齢:%d\n", &age);
scanf
に似た使い方ですが、ファイルポインタfp
を指定します。
fgets / fputs:1行単位の読み書き
// 書き込み
fputs("Hello, world!\n", fp);
// 読み込み
char line[100];
fgets(line, sizeof(line), fp);
fclose:ファイルを閉じる
fclose(fp);
ファイルを使い終わったら必ず閉じましょう。
データが保存されなかったり、メモリが無駄に消費されたりする原因になります。
使用例:ファイルへ書き込み
#include <stdio.h>
int main(void) {
FILE *fp = fopen("output.txt", "w");
if (fp == NULL) {
printf("ファイルを開けませんでした。\n");
return 1;
}
fprintf(fp, "Hello, file!\n");
fclose(fp);
return 0;
}
使用例:ファイルから読み取り
#include <stdio.h>
int main(void) {
FILE *fp = fopen("output.txt", "r");
char buffer[100];
if (fp == NULL) {
printf("ファイルを開けませんでした。\n");
return 1;
}
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
fclose(fp);
return 0;
}
まとめ
ファイル操作は、データの保存や読み込みを実現する重要な技術です。
基本は「fopen
で開く → fprintf
/fscanf
で操作 → fclose
で閉じる」の3ステップ。
初心者の方は、まずは簡単なテキストの読み書きから慣れていきましょう!