• ベストアンサー

cout と cerrの違い

こんにちわ。 どうも初歩的な質問だと思うのですが、教えてください。 C++で、cerrとcoutの違いは何なのでしょうか? どちらも同じように出力できますし。 自分でエラー表示を出力させたいような時にcerrを使えばよいのでしょうか? 使い分ける必要がいまいち分かりません。 お暇なときにでもお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.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

参考URL:
http://www-or.amp.i.kyoto-u.ac.jp/algo-eng/db/stdinout.html,http://www.monyo.com/technical/windows/04.html
noname#6448
質問者

お礼

回答ありがとうございます。 どちらもコンソールへの出力だったので、迷っていたのです。 windowsでは使いませんが、参考になりました、本当にありがとうございました。

その他の回答 (2)

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.2

coutは標準出力、cerrは標準エラー出力です。通常はどちらも出力デバイスとしてコンソールに出ますが、別のデバイスにリダイレクトしたり、パイプするときにはその指定方法が異なります。 cout(標準出力)    hoge > result.txt cerr(標準エラー出力) hoge >& error.txt など。

noname#6448
質問者

お礼

回答ありがとうございます。 リダイレクトの時に効果を発揮するのですね。。 早速やってみます^^ ありがとうございました

回答No.1

むかしのことでよく覚えていないのですが、 testprog.exe >out.txt としたとき、 cout は out.txt に出力され、 cerr は コンソールに出力され ていたようにおもいます。

関連するQ&A