標準入力からのデータの取り込みを行う関数に"getchar"があります。通常、標準入力はキーボードになっていますのでこの関数を使うとキーボードからの入力を取り込みます。
- getchar
インクルードファイル stdio.h 書式 int getchar(void) 引数 なし 処理 標準入力から1文字取り込む 戻り値 取り込んだ文字のアスキーコード(10進数)
次に"getchar"関数を使ったプログラムの例を示します。各プログラムを動作させ関数の処理の様子を確認してください。このプログラムをいろいろなキーの入力で動作させると分かりますが、"getchar"の戻り値である整数は読み込んだ文字のアスキーコードになっています。したがって、"putchar"と同様に読み込んだ値(戻り値)を文字型の変数に代入することができます。
/*** 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 を使ったプログラム(連続入出力) ***/ #include <stdio.h> /*** プロトタイプ宣言 ***/ int main(void); /*** main 関数 ***/ int main(void){ char c; c = getchar(); /* 標準入力からの読み込み */ while (c != EOF){ /* CTRL+D が押されるまで以下を実行 */ putchar(c); /* 読み込んだ値の標準出力への出力 */ c = getchar(); /* 標準入力からの読み込み */ } }