入出力について

入力

プログラミングでいう入力とは、実行しているプログラムに対して外部から情報を与えるという意味で、一番わかり易いのがキーボードからの入力です。たとえば、タイピングゲームを作成する際に、キーボードからの入力を促した上で、入力された値を評価する必要があります。

  c = getchar();

 

この記述がある行では、プログラムはキーボードからの入力待ちとなり、1文字入力されると処理を続行します。getchar()の戻り値はint型ですが、1バイト以内のデータであるため、返却値を格納する変数はint型かchar型が適当ですが、文字を扱うということを意図するため、プログラム上はchar型のほうが理解しやすいプログラムになります。

  while ( ( c = getchar()) != EOF ) {

        :

      (処理)

        :

  }

 

上記のようにすると、入力される文字を次々と判定していける仕組みとなります。EOFはファイルなどの読み込みであればファイル終端を示しますが、キーボード入力の場合Windowsであれば「Ctrl」+「C」を示します。その他の任意の文字で終了条件を作る場合は、whileの継続条件を「( c = getchar()) != ‘e’」というようにすれば「e」が入力されればループ処理は終了します。

その他には書式付き入力と呼ばれるscanf()があります。

  int n;

  printf("Please input number: ");

  scanf("%d", &n);

上記では「Please input number:」を出力したあとにキーボードからの入力を待ちます。値を入力後「Enter」を押すことによりデータの終わりを示すため、複数文字の入力を受けることも出来ます。「%d」は10進数を表し、この部分が入力される情報の形式を指定する部分です。文字の場合は「%c」、文字列の場合は「%s」などとなります。