ループが実行されるたびにテキストを印刷したかったのですが、私のプログラムはループが最後に実行されたときにのみ印刷します。私のコード:
while (shots>i){
printf ("%s", message);
i++;
sleep(1);
}
最後に、すべての出力を一度に取得します。
fflush(stdout);
afterを追加しprintf
て、出力をバッファから にフラッシュしますstdout
。
バッファがいっぱいになるか、「\ n」などの特殊文字が来る前に出力が行われません。stdout
手動で( call で)行う必要がありますfflush
。
fflushを使用してみてください。これにより、スリープが実行される前に stdout バッファーがクリアされます。したがって、新しいコード ブロックは次のようになります。
while (shots>i){
printf ("%s", message);
fflush(stdout);
i++;
sleep(1);
}
printf
バッファーを使用します。そのため、バッファがいっぱいになったとき、またはバッファがフラッシュされたときにのみ出力されます。