*C言語* 〜46時限目〜 ファイルの仕組みについて・・・
〜目次〜
ファイルの仕組みについて
標準ライブラリ関数を使うと、
画面やキーボードへの入出力をすることができました。
さらにデータを長く保存したり、大量に読み込んだりするには、
ファイルを使ってデータを管理することが欠かせません。
C言語では、
ファイルを使ってデータの読み書きするコードも、
これまでの入出力のコードとほとんど同じような方式で作成できます。
ファイルへの書き込みは「出力」、
ファイルからの読み込みは「入力」、
の作業にあたります。
ファイルによる入出力の基本操作について学んでいきます。
コード上でファイルの処理を行うには、
以下のような順序で操作を行います。
ファイルの「オープン」や「クローズ」とは、
操作を始める前に入出力に使われるストリームの概念と、
実際のファイルを結びつけ、
操作が終わった後に切り離す処理のことをいいます。
ファイルを使う際には、
最初にオープン、最後にクローズの作業が必要となります。
手順にしたがって、ファイルを扱うコードを作成してみます。
sample108.c
ーsample108の実行画面ー
ファイルをオープンしました。
ファイルをクローズしました。
sample108を実行すると、
test108.txtという空のファイルが作業中のフォルダ内に作成されます。
このコードでは、
ファイルのオープンとクローズだけを行なっています。
ファイルのオープンは、
fopen( )関数
を使って行います。
この関数には、
ファイル名
オープンモード
という2つの引数を渡します。
ここでは"w"という、
オープンモードを指定しています。
すると、
ファイルがオープンされ、
ファイルをさし示すポインタ(FILE *型)が返されます。
これを、
ファイルポインタまたはストリームポインタ
と呼びます。
尚、何らかの理由でファイルがオープンできずにエラーとなった場合には、
fopen( )関数から「NULL」という、
マクロで定義されたポインタが返されることになっています。
sample108の最後では、
ファイルをクローズする処理を行う、
fclose( )関数
を呼び出しています。
この操作を行わないと、
ファイルに問題が起こる場合があるので、
忘れずに行なってください。
ファイルのオープンとクローズの構文は以下の通りです。
FILE *ファイルポインタ = fopen("ファイル名", "オープンモード");
fclose(ファイルポインタ);
尚、オープンする際に指定できる
オープンモードは以下のような種類が存在します。
ファイルを1行出力する
空のファイルに処理を追加して、
実際にデータをファイルに書き込んでみます。
以下のコードを入力してください。
sample109.c
ーsample109の実行画面ー
ファイルをオープンしました。
ファイルに書き込みました。
ファイルをクローズしました。
sample109ではファイルをオープンした後に、
ファイルにデータを書き込む処理を追加しています。
ファイルに1行ずつ出力する際には、
fputs( )関数
などを使います。
この関数は、指定したファイルポインタがさすファイルに、
文字列を1行書き出す処理を行います。
ただし、
この関数を使うと、
自動的に改行されませんので、
改行を行う場合には、¥nをつける必要があります。
実際にtest109.txtのファイルを開くと、
2つの文字列が書き出されていることが確認できます。
次回はファイルに書式付きで出力する方法から学んでいきます。
〜END〜