やってみよう

いつもどおり, 教科書のプログラム例をコンパイルし, 実行してみよう. 今回も, あらかじめダウンロードしたプログラムをウェブに置いてある.
List 5-1 0501.c
List 5-2 0502.c
List 5-3 0503.c
List 5-4 0504.c
List 5-5 0505.c
List 5-6 0506.c ※間違い探し:コンパイルエラーが発生します。
List 5-7 menu.c

プログラムは単にそのまま実行するだけでなく, 読んで理解しよう. できたらどこか一箇所を変更して, 結果を確かめよう.

List 5-2 のプログラムには, 「getchar()」という見なれない関数が使ってある. これは, 標準入力(つまりキーボード)から, 文字を1文字だけ入力するものである. 以前出てきた「gets()」は一行まるごと文字配列に読み込んでいたが, それとは違う. 教科書ではP.151に説明がある.

List 5-6 の間違い探しは, 教科書に答が載っているけれど, まずコンパイルしてみてエラーメッセージを観察してから考えよう.

List 5-7 の24行目に「#define DOS_MENU 1」という行があるが, ここの計算機環境は Unix であるので, これは「#define DOS_MENU 0」のように 1 を 0 に変更してからコンパイルしよう.
また, 56行目には「for(;;){」という奇怪な文がある. for文は前回やったが, そこでは括弧の中に(1)初期化 (2)条件 (3)次の一歩 を書くと 学んだ. ここではそれが全部「空」になっているのだ. そのばあい, 「初期化」と「次の一歩」に関しては何もしないことを指定したことになる. 「条件」が空の場合, 常に真とする約束になっている. つまり,これは 「終了しない繰返し」いわゆる無限ループになっているのだった.


[page 2] prev index next