【 全体の目次 】

【 ←前に戻る この章の目次 次に進む→ 】


データの終わり<EOF>


次はさきほどの「整数データを入力していき、合計と平均を求めるプログラム」を少し改良したものです。

 

<EOF>

UNIXでは、^D(「コントロール」キー+「D」キー)の入力によって、データの終わりとする方法としてEOFを使う場合があります。 (MS-DOSでは、^Dの代わりに^Z(「コントロール」キー+「Z」キー)を入力します)

一般にファイルの終わり(データの終わり)を示す記号定数として、EOF(End of File)が使われ、stdio.hの中で「#define EOF -1」として定義されています。したがって、stdio.hをincludeしておけば、-1という具体的な値を使わずにEOFを用いて、データの終わりを指定できます。

具体的に、^D(「コントロール」キー+「D」キー)をデータの終わりとして、処理するプログラムの書き方は次のようになります。

while(scanf("%d",&dat)!=EOF){

(処理内容)

}

この方法ならば、2度読みをすることもなく、またデータの終わりが決まっているので、比較的簡単な方法だと言えます。

※ while(scanf("%d",&dat)!=-99)などとは出来ません。

また、whileの()の中に入っている入力処理(scanf関数)も繰り返し処理の中に含まれています。入力処理も^Dが入力されるまで繰り返されます。

<プログラムの流れ>

フローチャートは、次のようになります。

 

では、次から売り上げの合計と平均を求めるプログラムを作りましょう。このプログラムを応用すれば、簡単に作れます。

次へ!