TPY ENGINEERING VLOG

TPY ENGINEERING VLOG(C,JAVA)

*C言語* 〜46時限目〜 ファイルの仕組みについて・・・

〜目次〜

 

 

 

ファイルの仕組みについて

標準ライブラリ関数を使うと、

画面やキーボードへの入出力をすることができました。

さらにデータを長く保存したり、大量に読み込んだりするには、

ファイルを使ってデータを管理することが欠かせません。

C言語では、

ファイルを使ってデータの読み書きするコードも、

これまでの入出力のコードとほとんど同じような方式で作成できます。

ファイルへの書き込みは「出力」、

ファイルからの読み込みは「入力」、

の作業にあたります。

ファイルによる入出力の基本操作について学んでいきます。

コード上でファイルの処理を行うには、

以下のような順序で操作を行います。

f:id:YuyaTerayama:20180916141515p:plain

ファイルの「オープン」や「クローズ」とは、

操作を始める前に入出力に使われるストリームの概念と、

実際のファイルを結びつけ、

操作が終わった後に切り離す処理のことをいいます。

ファイルを使う際には、

最初にオープン、最後にクローズの作業が必要となります。

手順にしたがって、ファイルを扱うコードを作成してみます。

sample108.c

f:id:YuyaTerayama:20180916142416p:plainーsample108の実行画面ー

ファイルをオープンしました。

ファイルをクローズしました。

sample108を実行すると、

test108.txtという空のファイルが作業中のフォルダ内に作成されます。

このコードでは、

ファイルのオープンとクローズだけを行なっています。

ファイルのオープンは、

fopen( )関数

を使って行います。

この関数には、

ファイル名

オープンモード

という2つの引数を渡します。

ここでは"w"という、

オープンモードを指定しています。

すると、

ファイルがオープンされ、

ファイルをさし示すポインタ(FILE *型)が返されます。

これを、

ファイルポインタまたはストリームポインタ

と呼びます。

尚、何らかの理由でファイルがオープンできずにエラーとなった場合には、

fopen( )関数から「NULL」という、

マクロで定義されたポインタが返されることになっています。

sample108の最後では、

ファイルをクローズする処理を行う、

fclose( )関数

を呼び出しています。

この操作を行わないと、

ファイルに問題が起こる場合があるので、

忘れずに行なってください。

ファイルのオープンとクローズの構文は以下の通りです。

FILE *ファイルポインタ = fopen("ファイル名", "オープンモード");

fclose(ファイルポインタ);

尚、オープンする際に指定できる

オープンモードは以下のような種類が存在します。

f:id:YuyaTerayama:20180916144233p:plain

 

ファイルを1行出力する

空のファイルに処理を追加して、

実際にデータをファイルに書き込んでみます。

以下のコードを入力してください。

sample109.c

f:id:YuyaTerayama:20180916144746p:plainーsample109の実行画面ー

ファイルをオープンしました。

ファイルに書き込みました。

ファイルをクローズしました。

sample109ではファイルをオープンした後に、

ファイルにデータを書き込む処理を追加しています。

ファイルに1行ずつ出力する際には、

fputs( )関数

などを使います。

この関数は、指定したファイルポインタがさすファイルに、

文字列を1行書き出す処理を行います。

ただし、

この関数を使うと、

自動的に改行されませんので、

改行を行う場合には、¥nをつける必要があります。

実際にtest109.txtのファイルを開くと、

2つの文字列が書き出されていることが確認できます。

 

次回はファイルに書式付きで出力する方法から学んでいきます。

 

〜END〜