
C言語入門|テキストファイルとバイナリファイルの基本
ファイルを読み書きするということ
これまでの章では、画面に文字を表示したり、キーボードから入力を受け取ったりと、
プログラムと人間とのやり取りを中心に学んできました。
しかし、実際のプログラムでは、
- 設定情報を保存したい。
- 計算結果をあとから使いたい。
- 大量のデータをまとめて処理したい。
といった場面が頻繁に登場します。
そこで必要になるのが、
ファイルへの読み書き(ファイル入出力)です。
C言語では、ファイルをバイト単位で扱えるため、
文字データだけでなく、より低レベルなデータも柔軟に操作できます。
その理解の第一歩として、
まずは「ファイルの種類」から整理していきましょう。

ファイル入出力の基本的な考え方
ファイル入出力とは、
プログラムの外にあるファイルとデータをやり取りすることを指します。
| 操作 | 内容 |
|---|---|
| 読み込み | ファイルの中身をプログラムに取り込む。 |
| 書き込み | プログラムの結果をファイルに保存する。 |
C言語では、この読み書きをバイト単位で行えるのが特徴です。
そのため、単なる文章ファイルだけでなく、
画像・音声・実行ファイルのようなデータも扱えます。
ここで登場するのが、
テキストファイルとバイナリファイルという考え方です。
ファイルは大きく2種類に分けられる
コンピュータが扱うファイルは、
細かく見ればさまざまな拡張子がありますが、
本質的には次の2種類に分類できます。
| 種類 | 特徴 |
|---|---|
| テキストファイル | 文字として意味を持つデータ |
| バイナリファイル | 文字以外の形式で保存されたデータ |
拡張子の違いは、
「どのアプリケーションで開くか」を決める目印にすぎません。
ファイルの中身そのものが、
文字データとして保存されているかどうかが重要なのです。
テキストファイルとは何か
テキストファイルとは、
文字コードに基づいてデータが保存されているファイルです。
代表的な例を挙げてみましょう。
| 例 | 説明 |
|---|---|
| .txt | 単純な文章ファイル |
| .c | C言語のソースコード |
| .csv | カンマ区切りのデータ |
これらのファイルは、
テキストエディタで開くと内容を読むことができます。
テキストエディタは、
ファイルの中身を文字コードとして解釈し、
人間が読める文字として表示してくれるアプリケーションです。
CSVファイルを例に考えてみる
CSVファイルは、
複数のデータ項目をカンマで区切って並べた形式のテキストファイルです。
多くの環境では、
- ダブルクリックすると表計算ソフトで開く。
- 実はテキストエディタでも開ける。
という特徴があります。
これは、CSVファイルの中身が
純粋な文字データだからです。
開くアプリケーションが違っても、
同じデータを別の見せ方で表示しているだけなのです。
バイナリファイルとは何か
一方、バイナリファイルは、
文字として解釈されることを前提としていないデータです。
| 例 | 説明 |
|---|---|
| .exe | 実行可能ファイル |
| .jpg | 画像データ |
| .mp3 | 音声データ |
これらをテキストエディタで開いても、
意味のある文章として読むことはできません。
ファイルの中身は、
数値やビット列として保存されており、
専用のプログラムだけが正しく解釈できます。
見分け方のシンプルな考え方
厳密な定義はありますが、
学習の最初段階では、次の覚え方で十分です。
| 観点 | 判定 |
|---|---|
| テキストエディタで読める | テキストファイル |
| テキストエディタで読めない | バイナリファイル |
この考え方は、
C言語でファイル入出力を学ぶうえでとても役立ちます。
C言語とファイルの関係
C言語は、ファイルを
単なるデータの流れ(バイト列)として扱います。
そのため、
- 文字として読むのか
- 数値や構造体として読むのか
は、プログラム側の責任になります。
この柔軟さこそが、
C言語が長く使われ続けている理由のひとつです。
この章で学ぶことの位置づけ
ここまでで、
- ファイル入出力とは何か
- テキストファイルとバイナリファイルの違い。
という基礎を整理しました。
次からは、
- 実際にファイルを開く。
- データを読み書きする。
- テキストとバイナリで扱い方がどう変わるか。
といった具体的な操作に進んでいきます。
