
C言語入門|14章のまとめ
ファイル入出力をひととおり身につけよう
ここまででできるようになったこと
14章では、C言語でプログラムの外にあるデータを扱うための「ファイル入出力」について学んできました。
画面に表示するだけのプログラムから一歩進んで、データを保存し、再利用するための技術がぎゅっと詰まった章です。
最初は少し難しく感じたかもしれませんが、読み進めていくうちに、
- ファイルを開く。
- データを書き込む。
- データを読み取る。
- 必要なら途中の位置に移動する。
といった流れが、自然に見えてきたのではないでしょうか。
ここでは、14章で登場した重要な考え方と命令を、あらためて整理していきます。

ファイルの種類を理解する
ファイルは大きく分けて、テキストファイル と バイナリファイル の2種類があります。
| 種類 | 特徴 | 代表例 |
|---|---|---|
| テキストファイル | すべて文字コードとして解釈できる | txt, csv, ソースコード |
| バイナリファイル | 数値や構造体など、そのままの形で保存される | dat, exe, 画像 |
テキストファイルは人が読めますが、バイナリファイルは人の目では意味がわかりません。
その代わり、高速で正確なデータ保存ができるのが強みです。
14章では、この両方を状況に応じて使い分ける方法を学びました。
ストリームという考え方
C言語では、外部とのデータのやり取りはすべて ストリーム を通して行われます。
ストリームとは、「データが流れる一本の通り道」のようなものです。
| 対象 | ストリームの例 |
|---|---|
| ファイル | fopen で開いたファイル |
| キーボード | 標準入力 |
| 画面 | 標準出力 |
| ネットワーク | ソケット通信 |
printf や scanf も、実はストリームを使って動いています。
ファイル入出力は、その仕組みをより意識的に扱う練習だった、と考えると理解しやすいですね。
ファイル操作の基本ルール
ファイル操作には、いくつかの大切な約束があります。
| 内容 | 説明 |
|---|---|
| ファイルを開く | fopen を使って FILE 構造体を取得する。 |
| ファイルを閉じる | fclose を必ず呼び出す。 |
| 読み書き位置 | 自動で進むが、必要なら操作できる。 |
fopen で開いたファイルは、使い終わったら必ず fclose で閉じます。
これは「後片付け」のようなもので、忘れるとトラブルの元になります。
シーケンシャルアクセスとランダムアクセス
ファイルの読み書き方法には、2つの考え方があります。
| 種類 | 特徴 |
|---|---|
| シーケンシャルアクセス | 先頭から順に読み書きする。 |
| ランダムアクセス | 任意の位置に移動して読み書きする。 |
通常の読み書きはシーケンシャルアクセスで十分です。
一方、fseek や ftell を使えば、必要な場所だけを狙って読み書きできます。
特にバイナリファイルでは、ランダムアクセスが強力な武器になります。
データ量に応じた読み書き関数
14章では、扱うデータ量に応じて、さまざまな関数を学びました。
| 方法 | 読み取り | 書き込み |
|---|---|---|
| 1バイト単位 | fgetc | fputc |
| 1行・文字列単位 | fgets | fputs |
| サイズ指定 | fread | fwrite |
それぞれの関数は、
「どこで終わりを判断するか」
「どれくらいの量を扱うか」
という考え方が異なります。
場面に応じて正しい関数を選べるようになると、プログラムの表現力が一気に広がります。
章のまとめとして
14章を通して、C言語のファイル入出力の基本から応用までを一通り体験しました。
- データを保存できるようになった。
- バイナリで効率よく扱えるようになった。
- ファイルの位置を意識できるようになった。
これらは、実用的なプログラムを書くうえで欠かせない土台です。
ここで学んだ知識を使って、
設定ファイル、セーブデータ、ログ出力など、
ぜひ自分なりのプログラムを作ってみてください。
