C言語入門|テキストファイルとバイナリファイルの基本

ファイルを読み書きするということ

これまでの章では、画面に文字を表示したり、キーボードから入力を受け取ったりと、
プログラムと人間とのやり取りを中心に学んできました。

しかし、実際のプログラムでは、

  • 設定情報を保存したい。
  • 計算結果をあとから使いたい。
  • 大量のデータをまとめて処理したい。

といった場面が頻繁に登場します。

そこで必要になるのが、
ファイルへの読み書き(ファイル入出力)です。

C言語では、ファイルをバイト単位で扱えるため、
文字データだけでなく、より低レベルなデータも柔軟に操作できます。

その理解の第一歩として、
まずは「ファイルの種類」から整理していきましょう。

ファイル入出力の基本的な考え方

ファイル入出力とは、
プログラムの外にあるファイルとデータをやり取りすることを指します。

操作内容
読み込みファイルの中身をプログラムに取り込む。
書き込みプログラムの結果をファイルに保存する。

C言語では、この読み書きをバイト単位で行えるのが特徴です。

そのため、単なる文章ファイルだけでなく、
画像・音声・実行ファイルのようなデータも扱えます。

ここで登場するのが、
テキストファイルバイナリファイルという考え方です。

ファイルは大きく2種類に分けられる

コンピュータが扱うファイルは、
細かく見ればさまざまな拡張子がありますが、
本質的には次の2種類に分類できます。

種類特徴
テキストファイル文字として意味を持つデータ
バイナリファイル文字以外の形式で保存されたデータ

拡張子の違いは、
「どのアプリケーションで開くか」を決める目印にすぎません。

ファイルの中身そのものが、
文字データとして保存されているかどうかが重要なのです。

テキストファイルとは何か

テキストファイルとは、
文字コードに基づいてデータが保存されているファイルです。

代表的な例を挙げてみましょう。

説明
.txt単純な文章ファイル
.cC言語のソースコード
.csvカンマ区切りのデータ

これらのファイルは、
テキストエディタで開くと内容を読むことができます。

テキストエディタは、
ファイルの中身を文字コードとして解釈し、
人間が読める文字として表示してくれるアプリケーションです。

CSVファイルを例に考えてみる

CSVファイルは、
複数のデータ項目をカンマで区切って並べた形式のテキストファイルです。

多くの環境では、

  • ダブルクリックすると表計算ソフトで開く。
  • 実はテキストエディタでも開ける。

という特徴があります。

これは、CSVファイルの中身が
純粋な文字データだからです。

開くアプリケーションが違っても、
同じデータを別の見せ方で表示しているだけなのです。

バイナリファイルとは何か

一方、バイナリファイルは、
文字として解釈されることを前提としていないデータです。

説明
.exe実行可能ファイル
.jpg画像データ
.mp3音声データ

これらをテキストエディタで開いても、
意味のある文章として読むことはできません。

ファイルの中身は、
数値やビット列として保存されており、
専用のプログラムだけが正しく解釈できます。

見分け方のシンプルな考え方

厳密な定義はありますが、
学習の最初段階では、次の覚え方で十分です。

観点判定
テキストエディタで読めるテキストファイル
テキストエディタで読めないバイナリファイル

この考え方は、
C言語でファイル入出力を学ぶうえでとても役立ちます。

C言語とファイルの関係

C言語は、ファイルを
単なるデータの流れ(バイト列)として扱います。

そのため、

  • 文字として読むのか
  • 数値や構造体として読むのか

は、プログラム側の責任になります。

この柔軟さこそが、
C言語が長く使われ続けている理由のひとつです。

この章で学ぶことの位置づけ

ここまでで、

  • ファイル入出力とは何か
  • テキストファイルとバイナリファイルの違い。

という基礎を整理しました。

次からは、

  • 実際にファイルを開く。
  • データを読み書きする。
  • テキストとバイナリで扱い方がどう変わるか。

といった具体的な操作に進んでいきます。