2012-01-02 12 views
3

coutは、クラスのオブジェクトです。また
は、我々は書くとき:
コンソールをostreamで書き込むファイルとして指定する方法は?

filebuf objFileBuf; 
objFileBuf.open ("test.txt", ios :: out); 

ostream objOstream (&objFileBuf); 
objOstream << "Test sentence\n"; 

objFileBuf.close(); 

テキストがファイルに書き込まれます。

"console"をostream経由で書き込むファイルとして指定する方法はありますか?

答えて

5

あなたはこれを行うことができます

ostream & objOstream = cout; 
objOstream << "Test sentence goes to console\n"; 

秒1ではなく、あなただけstd::coutへの参照を作成し、ストリームバッファでは動作せず、参照を使用してください。

+0

:)ありがとうございますが、 'rdbbu'ではなく' rdbuf'です。とにかく、それは間接的に勘定を使用しなければならないということですか?では、qdebugはどのようにコンソールに書き込みますか? –

0

あなたはしません。 coutまたはcerrに書き込むだけです。これらのストリームはシェルによって整理されており、これ以上はできません。プログラムで新しいチャネルをコンソールに作成させることはできません。 coutまたはcerrを使用できないのはなぜですか?

ostream objOstream (cout.rdbuf()); 
objOstream << "Test sentence goes to console\n"; 

それとも、これを行うことができます:

+0

qDebugはストリームに書き込みませんか?それができたら、なぜ私はできないのですか? –

+0

恐らく 'cerr'に書き込みます。標準出力と標準エラーをファイルなどにリダイレクトしてからqdebugを使ってテストすることができます。 qdebugはおそらく、標準エラーがどこにあっても、ファイルハンドルや文字列が明示的に指定されていない限り、単にstd :: cerrにアクセスするため出力されます。 – Dan

+0

恐らく彼は彼のファイル作成プログラムをテストしています。とにかく私はこれを掘り起こしたのです。 – linkhyrule5

関連する問題