2
プログラムが開始されてからリアルタイムで経過秒数を印刷します。まず出力は "0"です。 1秒後、 "0"は "1"に置き換えられ、以下同様に続きます。ここに私が最初に書いたコードがあります。Cの現在の行を印刷、遅延、消去する
これは、7秒の最後に出力「7」を与えました。
次の置換を行うと、コードは正常に動作します。
printf("\33[A"); //vt100 char, moves cursor up
printf("\33[2K"); //vt100 char, erases current line
printf("%ld\n", time/CLOCKS_PER_SEC);
問題によって
printf("%ld\n", 0);
と
printf("\r");
printf("%ld", time/CLOCKS_PER_SEC);
によって
printf("%ld", 0);
現在の行が完全に決定されるまで出力は習慣送信されると思われます。ここで何が起きてるの?
私はUbuntuでgccコンパイラを使用しています。
'fflush(stdout);' – hyde