標準入出力について
キーボードからアルファベット、値などを入力することを、標準入力(standard input)といいます。逆に、画面にアルファベット(漢字を含む)、値などを出力することを標準出力(standard output)といいます。これまでに、標準入力として scanf 関数、標準出力として printf 関数を説明してきました。他の標準入出力関数があります。ここでは、それらについて説明します。
これらの標準入出力関数を使う場合は、# include <stdio.h> という前処理命令を使わなければなりません。この指定については、これまでは説明せずに指定するようにしてきました。
一文字入力
一文字入力のための関数として getchar( ) があります。標準入力から一文字入力します。
# include <stdio.h> int main() { int ch; while((ch=getchar()) != EOF) printf("%c"); return 0; } |
EOF というのは、End Of File の略で、ファイルの終わりを指します。上のブログラムでは、「ファイルの終わりまで、一文字ずつ読み込む」ことを示します。一文字読み込む文字を格納する変数ch は、整数型とします。通常のアルファベットは、char 型で十分ですが、EOF が32ビットの-1を示しているためです。
このプログラムは、標準入力からの文字をそのまま標準出力に出力するプログラムです。
一文字出力
一文字出力には、putc 関数があります。同様に putchar 関数もあります。
# include <stdio.h> int main() { int ch; while((ch=getchar()) != EOF) putchar(ch); return 0; } |
リダイレクション
C言語の機能ではありませんが、C言語を実行する環境(Windows XP)には、標準入出力を一般のファイルに割り当てる機能があります。これをリダイレクション(redirection)といいます。以下のように、実行時に標準入力の先を切替えることができます。
この < という操作をリダイレクションという。