私はコンソールに現在のステータスをパーセントで表示する小さな関数を作りたいと思います。この関数は、行の現在の値のみを表示する必要があります。 最後の出力を削除する必要があります。それは可能ですか?最善のケースはANSI Cのものですが、プログラムはLinuxとWindowsで動作するはずです。C printfの出力を外す
"\033[J"
のようなエスケープシーケンスがいくつか見つかりましたが、機能しません。
編集
まあ私はそれを試してみました:
void PrintProcessBar(int i, int n) {
float ratio = i/(float)n;
printf("%.3d\b\b", (int)(ratio * 100));
fflush(stdout);
}
しかし、それだけで何が悪かったのか...ゼロの多くを印刷しますか?私が3つ使用すると、私は何も得られません。\b
ソリューション
float ratio = (i/(float)n) * 100;
printf("\b\b\b\b");
fflush(stdout);
printf("%.3d%c", (int)ratio, 37);
fflush(stdout);
I =現在の位置。 n = maxが実行されます。
私は4 \b
を使用します。これは、関数の最初の呼び出しで4つのスペースが削除されるためです。
Greetz。
回答は質問とは別にしてください。あなた自身の質問に答えるには、このページの下部にある[あなたの質問に答える]ボタンをクリックしてください。 – brandaemon