許多命令行工具都實現了基於文本的進度條。像RPM安裝:如何使用printf製作「進度條」?
安裝############## [45%]
#
的生長與所述百分比,而保持自身在單行。我想要的是類似的東西:我需要一個進度指示器,只需一行,也就是說,當百分比增長時,它會被覆蓋,而不是創建新行(\n
)。
我嘗試這樣做:
#include <stdio.h>
int main(){
int i = 0;
for (i = 0; i < 10000; i++){
printf("\rIn progress %d", i/100);
}
printf("\n");
}
\r
工作覆蓋一行。但是,\r
會將光標移至行的開頭,並且printf
會將光標移至末尾,這會導致光標快速移動。你們可以通過一些編輯來感受它。任何人都可以想出替代方案來避免這個問題?
謝謝!它工作正常。其實我對緩衝流有一點概念,你能否提供一些解釋或進一步參考? – qweruiop