std::cout << "hello"
うまくいかない状況はありますか?私は ac/c++ コードを持ってstd::cout
いますが、定数文字列 ("hello" など) でさえ何も出力しません。
cout
ストリームを開くことができるかどうかを確認する方法はありますか? good()
、 、 ...のようなメンバ関数がいくつかありますがbad()
、どれが自分に適しているかわかりません。
必ずストリームをフラッシュしてください。これが必要なのは、出力ストリームがバッファリングされ、自分で手動でフラッシュしない限り、バッファがいつフラッシュされるか保証されないためです。
std::cout << "Hello" << std::endl;
std::endl
改行を出力し、ストリームをフラッシュします。または、単にフラッシュを行いますstd::flush
。フラッシュは、ストリームのメンバー関数を使用して行うこともできます。
std::cout.flush();
std::cout
バッファリングが原因で機能しない可能性があります(書いているものは、出力ではなくバッファになりstd::cout
ます)。
次のいずれかを実行できます。
std::cout
明示的にフラッシュ:
std::cout << "test" << std::flush; // std::flush is in <iostream>
std::cout << "test";
std::cout.flush(); // explicitly flush here
std::cout << "test" << std::endl; // endl sends newline char(s) and then flushes
代わりに使用std::cerr
します。std::cerr
はバッファリングされませんが、別のストリームを使用します (つまり、「コンソールでメッセージを表示する」以上のことに関心がある場合、2 番目の解決策は機能しない可能性があります)。