for(j = 1; j < 11; j++)
{
printf("%ds ",j);
sleep(1);
}
私は、このコードが「1s 2s 3s ... 10s」と出力することを期待していましたが、それらの間に 1 秒の間隔がありますが、代わりに 10 秒後にすべての数字を出力します。どのように修正すればよいですか?私はubuntuに取り組んでいます。
ストリームはバッファリングされるstdout
ため、すぐに結果が必要な場合は、そのバッファをフラッシュする必要がありますfflush()
:
for (j = 1; j < 11; j++) {
printf("%ds ", j);
fflush(stdout);
sleep(1);
}
\n を printf に追加してフラッシュします。
for(j = 1; j < 11; j++)
{
printf("%ds\n",j);
sleep(1);
}
詳細については、こちらを参照してください。