8.2 標準入出力

  2.標準入力関数
 標準入力からのデータの取り込みを行う関数に"getchar"があります。通常、標準入力はキーボードになっていますのでこの関数を使うとキーボードからの入力を取り込みます。
getcharのイメージ

 次に"getchar"関数を使ったプログラムの例を示します。各プログラムを動作させ関数の処理の様子を確認してください。

/***
  getchar を使ったプログラム(読み込んだ値を整数値として処理)
***/
#include <stdio.h>

/*** プロトタイプ宣言 ***/

int main(void);

/*** main 関数 ***/
int main(void){
 int i;

 i = getchar();     /* キーボードからの 1 文字の入力を取り込む */

 printf("%d\n", i); /* 読み込んだ値を表示 */
}
 このプログラムをいろいろなキーの入力で動作させると分かりますが、"getchar"の戻り値である整数は読み込んだ文字のアスキーコードになっています。したがって、"putchar"と同様に読み込んだ値(戻り値)を文字型の変数に代入することができます。

/***
  getchar を使ったプログラム(読み込んだ値を文字として処理)
***/
#include <stdio.h>

/*** プロトタイプ宣言 ***/
int main(void);

/*** main 関数 ***/
int main(void){
  char c;

 c = getchar();     /* キーボードからの 1 文字の入力を取り込む */

 /*** 読み込んだ値を文字型, 整数型の 2 つの型で表示 ***/
 printf("%c: ascii code - %d\n", c, c);
}
 "getchar"と"putchar"を利用して連続した入出力のプログラムは次のようになります。

/***
  getchar を使ったプログラム(連続入出力)
***/
#include <stdio.h>

/*** プロトタイプ宣言 ***/
int main(void);

/*** main 関数 ***/
int main(void){
  char c;

 c = getchar();     /* 標準入力からの読み込み */
 while (c != EOF){  /* CTRL+D が押されるまで以下を実行 */
  putchar(c);      /* 読み込んだ値の標準出力への出力 */
  c = getchar();   /* 標準入力からの読み込み */
 }
}