次はさきほどの「整数データを入力していき、合計と平均を求めるプログラム」を少し改良したものです。
<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が入力されるまで繰り返されます。
<プログラムの流れ>
フローチャートは、次のようになります。では、次から売り上げの合計と平均を求めるプログラムを作りましょう。このプログラムを応用すれば、簡単に作れます。