I-14-7. 標準入出力を利用したプログラミング

Cプログラムにおける入出力の概念を説明し、入出力ストリームに対するプログラミング手法を紹介する。ここでは特に標準入出力を対象とした文字や文字列の受け渡しについて解説する。

【学習の要点】

* Cでは標準入出力もファイルとして扱われるので、ファイルの入出力と同様の方法で標準入出力にアクセスできる。

* fgets()関数やfputs()関数の引数に標準ファイルを指定することで、標準入出力を対象とした文字列の受け渡しができる。

図I-14-7. 入出力ストリーム

【解説】

1) Cプログラムにおける入出力

Cプログラムにおける入出力は、すべてファイルに対して行われる。キー入力と画面出力(標準入出力と呼ばれる)もファイルとして扱われる。

* stdin 標準入力(通常はキー入力)

* stdout 標準出力(通常は画面表示)

* stderr 標準エラー出力(通常は画面表示)

これらのファイルはCでは常にオープン状態となっているため、明示的にオープンする命令は不要である。

2) 標準入力からの文字列の読み込み

標準関数fgets()を使用すると、標準入力から文字列を読み込むことができる。fgets()呼び出しの一般的な形は以下のとおりである。

fgets (name, sizeof(name), stdin);

ここで、nameは文字列変数を表す。引数は以下のようになる。

* name

文字配列の名前を指定する。1行(文字列終端文字を含む)が、この配列に読み込まれる。

* sizeof(name)

読み込む文字の最大数(文字列終端文字の1文字分を加えた数)を指定する。関数sizeof()を使用すると、読み込む文字数を変数が保持可能な数に制限できる。

* stdin

読み込むべきファイルを指定する。ここでは、このファイルは標準入力となる。

3) 標準出力への文字列の出力

文字列はfputs()を使って標準出力に書きだすことができる。

例)

fputs(name, stdout);

4) 標準エラー出力への文字列の出力

標準出力と同様である。

例)

fputs(name, stderr);

OSS Course Naviのコンテンツは IPA OSS モデルカリキュラムを基としています。