注意
入力促進(prompt)について
プログラムで入力を読み込む前に,
「データを入れてください」のような
文字列を出力することがある.
これは教科書のサンプルプログラムにもよく見られる.
たとえば p.59 の List 3-5 の17行め.
printf("年齢を入力してください。\n");
gets(buffer);
age = atoi(buffer);
こういう出力を「入力促進記号(prompt)」と呼んだりする.
その効果としては,
利用者に何を入力するのかを教える働きがある.
これを出力しないと,
プログラムは入力待ちで黙って停止することになり,
利用者がとまどうので, それを防止する点もある.
しかし, この授業では,
こうした入力促進は行わないことにしよう.
つまり, printf で出力するのは, 計算の結果だけにする.
理由はいくつかある:
- 出力を別のプログラムで利用しようとすると邪魔になる
- 入力データをファイルから読む際には意味を失う
- 現実のプログラムでは, 利用者がターミナルからキーボードで入力することはまれ
- 「基礎プロくん」の出力の自動判定にも悪影響をおよぼす
getsを使ったときの警告メッセージについて
今回紹介した, getsを使ったプログラムをコンパイルすると,
warning: the `gets' function is dangerous and should not be used.
のような警告メッセージが表示されるかもしれない.
日本語にすると, 「gets は危険だから使うな」ということ.
しかし, 教科書がこれを使っていることでもあるし,
この授業のあいだはこの警告を無視して使うことにしよう.
(警告を無視してもプログラムは動作する)
気になる人は,
gets(buffer);
の代わりに
fgets(buffer, sizeof buffer, stdin);
とすればよい. こちらは安全なのです.
[page 5]
prev
index
next