標準入出力関数ー文字入力ー

文字入出力関数

標準入出力関数には第5回で説明した printf() 、 scanf() の他に、以下のような1文字専用の入出力関数と 1行専用の入出力関数が用意されている。

標準入力
 1. getchar():1文字入力
 2. gets():1行入力
 3.  scanf():書式付き入力

標準出力
 1. putchar():1文字出力
 2. puts():1行出力
 3. printf():書式付き出力

標準入出力関数を使用するには、#include が必要。

getchar()

キーボードから1文字入力

#include 
main()
{
    int a;       /* 文字を入力する変数は必ずint型 */
    a = getchar();      /* 入力した1文字がaに入る。引数なし */
    ........

getchar()は入力が終了したときに「EOF」という値を返す。 この EOF は の中で宣言されているが、その値は通常は「-1」である。 普通 char型は「-128〜127」の範囲を扱うが、0〜255で文字コードを扱う処理系では「0〜255」となり、この「-1」が扱えない。これに対し「int型」はどの処理系でも「-1」が扱える。 したがってどの処理系でも「EOF」が返せるように、getchar()は int型変数で値を受け取る。

gets()

キーボードから文字列を1行入力

#include 
main()
{
    char a[2000];       /* 文字を入力す配列は十分な大きさをとる */
    gets(a);      /* 改行するまで1行分の文字列が入る */
    .......

gets()・・・「改行まで」文字列を読込む:スペースを読込める

scanf() ・・・「改行やスペースなどの空白類文字がくるまで」文字列を読込む:スペースは読込めない