第1章 画面への出力
さて、今回は標準出力ストリームについてします。
通常は、標準出力は画面です。この標準出力というのが
結構くせ者です。まあ、今のうちはイコール画面
と覚えておいてそう大きな間違いはありません。
では、早速簡単なプログラムを書いて説明します。
Cのときおなじみのstdio.hのかわりに、iostream.hをインクルードします。
そして、coutは<<演算子(出力ストリーム演算子)の右側にあるモノを
標準出力に送ります。(あまり正しくない表現です)右側のモノは、文字列に
限らずなんでもOKです。
はい。結果は左の通りです。Cでは、printf("私の名前は...");
と書きますね。coutは見た目の通り関数ではなく変数みたいなモノです。
左のように、文字列やら、文字やら、数値やらをごちゃごちゃに出力できます。
こりゃ便利ですね。でも、文字列を出力するときはポインタを使っていることに
注意してください。
あーきちんと表示されていますね。
こりゃ、Cよりランチンですね。
ところで、この章の最初の方で「標準出力はほぼ画面」
と言うような意味のことを書きました。「ほぼ」とは
「だいたい」という意味です。
エーィッ!回りくどいな!一体何が言いたい!?
はい、標準出力がいつも画面とは決まっていないと言うことです。
MSDOSには、「リダイレクト」と言うことがあります。
これは、流れ(ストリーム)の方向を変えるという意味です。
(多分ね)この章で2番目に作ったプログラムの名前を
outp02.exeとします。MSDOSのプロンプトでこれを
実行すると、上のような結果が出るでしょう。では、次の
ように実行してみてください。
outp02.exe > outp02.txt
あれ、何も表示されないぞ!!!
では、outp02.exeのあるディレクトリーの中身を見てみましょう。
DOSのdirコマンドでもいいですし、マイコンピュータとか
エクスプローラを使ってのぞいてみてください。
あれ、いつの間にか「outp02.txt」というファイルが
できている!
そのファイルをテキストファイルとして読んでみてください。
DOSのtypeコマンドでもいいし、メモ帳でもいいです。
あ、そうか。画面に表示されるべきモノがファイルの中に表示
されたんだ。
はい、その通りです。これが「リダイレクト」というもので
CやC++の機能ではなくMSDOSの機能のひとつです。
ファイルだけでなく、プリンターに出力することもできます。
従って、printfやcoutの出力がいつも画面であると
思っているととんだ失敗をすることがあります。
エラー表示を標準出力にだすプログラムでは、これがリダイレクト
されているとユーザーに伝わらないことがあります。
じゃ、どーすればいいの?
はい。標準エラーストリーム(stderr)というのがあります。これは
常に画面です。C++では、coutのかわりにcerrを使えばOKです。
C言語の場合はどうしたらよいでしょう。ヘルプで調べてみてください。
[C++Index]
[総合Index]
[Next Chapter]
Update Dec/30/1996 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、
転載あるいはコンピュータ等のファイルに保存することを禁じます。