- ベストアンサー
cout と cerrの違い
こんにちわ。 どうも初歩的な質問だと思うのですが、教えてください。 C++で、cerrとcoutの違いは何なのでしょうか? どちらも同じように出力できますし。 自分でエラー表示を出力させたいような時にcerrを使えばよいのでしょうか? 使い分ける必要がいまいち分かりません。 お暇なときにでもお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
cerr:標準エラー出力 =C言語では stderr cout:標準出力 =C言語では stdout どちらもコンソールへの出力ですが、違いはハンドルが違うことです。 このため、リダイレクトやパイプのやり方が変わります。 http://www-or.amp.i.kyoto-u.ac.jp/algo-eng/db/stdinout.html この違いを利用すると、通常の出力を標準出力に出力しエラーのみエラー出力に しておくことで、リダイレクトやパイプを利用しているときでも、エラーは コンソールに出力されるので便利になります。 尚、Windows系では、標準エラー出力へのリダイレクトは abc 2> route.txt のような書式になります。(#2さんの書式はWindows系では使えません) http://www.monyo.com/technical/windows/04.html
その他の回答 (2)
- yatokesa
- ベストアンサー率40% (201/496)
coutは標準出力、cerrは標準エラー出力です。通常はどちらも出力デバイスとしてコンソールに出ますが、別のデバイスにリダイレクトしたり、パイプするときにはその指定方法が異なります。 cout(標準出力) hoge > result.txt cerr(標準エラー出力) hoge >& error.txt など。
お礼
回答ありがとうございます。 リダイレクトの時に効果を発揮するのですね。。 早速やってみます^^ ありがとうございました
- Joshua0440
- ベストアンサー率9% (2/21)
むかしのことでよく覚えていないのですが、 testprog.exe >out.txt としたとき、 cout は out.txt に出力され、 cerr は コンソールに出力され ていたようにおもいます。
お礼
回答ありがとうございます。 どちらもコンソールへの出力だったので、迷っていたのです。 windowsでは使いませんが、参考になりました、本当にありがとうございました。