next up previous contents
Next: 取り込んだ文字列を変換する Up: 計算機言語 I 第 3 Previous: 基本データ型についての復習   Contents

インタラクティブなプログラム

インタラクティブ(interactive)とは, 会話的という意味です. 正確な意味は辞書に載っています.

実行の途中で文字の入力を要求するようなプログラムを作成します. 以下の例では, 改行までの入力文字列を char型の配列に変換する fgets() というライブラリ関数を利用します. 次のプログラムを, コンパイルして実行してみて下さい.

/* File name 3-3.c   */
#include <stdio.h>
#define BUFFSIZE 1024
main()
{
   char        nyuuryoku[BUFFSIZE];   /* 1024 バイトまで入力できます */

   printf("文字列を入力して下さい >> ");

   /* 改行までの入力文字を char型の配列に変換する */
   fgets(nyuuryoku, BUFFSIZE, stdin); /* stdin は標準入力 */

   printf("あなたの入力した文字は\n\t%sです\n", nyuuryoku);
}
fgets() は, file get string と読んで下さい. ファイルから文字列を 与えられた長さ(上の例では BUFFSIZE = 1024 バイト)読み込み, 最初の引数の文字列配列に代入します. stdin は標準入力(styandard input) です.

C 言語の参考書によっては, 別のやり方が書いてある事 もありますが, この講義では, 上で述べた形式を使います. 「scanf()は使うな」と言う格言があり, これを用いてインタラクティブ な処理を記述している参考書は,良い本ではない事が多いようです. 理由は, man scanf を読んで下さい.(日本語の方は, 私には理解できません でした. 英語の方が良いと思います)



2003-04-25