ループに置かれた文字列は印刷されません。プログラムは、あなたはおそらく、ここで見ている何types.hでヘッダファイルがなぜ私の出力がすぐに表示されないのですか?
for(int i=0;i<9;i++)
{
cout<<"||";
sleep(1);
}
ループに置かれた文字列は印刷されません。プログラムは、あなたはおそらく、ここで見ている何types.hでヘッダファイルがなぜ私の出力がすぐに表示されないのですか?
for(int i=0;i<9;i++)
{
cout<<"||";
sleep(1);
}
を含まSYS /で、G ++の助けを借りて書かれたバッファリングされた出力の効果です。一般に、出力はstd::endl
が使用されるまで実際には書き込まれません。フードstd::endl
下
for(int i=0;i<9;i++)
{
// Flushes and adds a newline
cout<< "||" << endl;
sleep(1);
}
改行文字を追加した後、コンソールに出力を強制的にstd::flush
を使用しています。 std::flush
を直接使用して同じ効果を得ることができます。
おそらく、endlが両方とも行末を追加してフラッシュを呼び出すという正確さが必要です。 '\ n'だけで十分です。 – Klaim
*一般に、新しい行が印刷されるまで、出力は実際には書き込まれません**。* ..それは正しくありません。改行はその保証を与えません。 'std :: endl'はバッファ**に改行を追加し、**はそれをフラッシュします。 – Nawaz
std :: endlの理由は、行末のもの(* nixでは\ n、Windowsでは\ r \ n)とstd :: flushを追加します。重要な部分はstd :: flushですが、std :: endlは確実に動作します。 –
出力をフラッシングしていません。
std::cout << "||" << std::flush;
try 'cout <<" || " << endl; ' –
あなたはエラーを投稿できますか? –