许多命令行工具实现了基于文本的进度条.像rpm安装一样:
安装############## [45%]
#随着百分比的增长而增长,同时保持一条线.我想要的是类似的东西:我需要一个进度指示器只占一行,也就是说,当百分比增长时,它被覆盖,而不是创建一个新行(\n).
我试过这个:
#include <stdio.h>
int main (){
int i = 0;
for (i = 0; i < 10000; i++){
printf("\rIn progress %d", i/100);
}
printf("\n");
}
Run Code Online (Sandbox Code Playgroud)
\r可以覆盖单行.但是,\r将光标移到行的开头printf并将光标移到末尾,这会导致光标快速波动.你们可以通过一点点编译来感受它.任何人都可以提出替代方案来避免这个问题吗?
Ala*_*avi 14
这是stdout流被缓冲的问题.你必须显式刷新它(使用a \n进行隐式刷新)使用fflush(stdout)后printf():
fflush(stdout);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23606 次 |
| 最近记录: |