我想創建一個小函數,它應該在控制檯中顯示當前狀態的百分比。該函數只應顯示行中的當前值。 所以我必須刪除最後一個輸出。那可能嗎?最好的情況是一些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);
}
但它只是打印零分......出了什麼問題?如果我使用三個\b
,我什麼也得不到。
解
float ratio = (i/(float)n) * 100;
printf("\b\b\b\b");
fflush(stdout);
printf("%.3d%c", (int)ratio, 37);
fflush(stdout);
I =當前位置。 n =最大運行。
我用4 \b
因爲,在函數的第一次調用它會刪除4個空格。
Greetz。
答案應該與問題分開。如果您想回答自己的問題,可以通過單擊此頁面底部的[回答您的問題]按鈕來完成。 – brandaemon 2016-01-20 21:58:59