我正在为Mac OS X编写一个处理大量文件的命令行工具.我想向用户显示当前正在处理的文件,但不想一个bazillion文件污染的终端窗口.
相反,我想用一个单一的行输出的文件路径,然后再用该行下一个文件.是否有要输出的字符(或其他代码)std::cout来完成此操作?
另外,如果我想为Windows重新定位此工具,那么两个平台的解决方案是否相同?
许多命令行工具实现了基于文本的进度条.像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并将光标移到末尾,这会导致光标快速波动.你们可以通过一点点编译来感受它.任何人都可以提出替代方案来避免这个问题吗?
对于正在执行的任务,实现基于控制台的进度指示器的简单方法是什么,但我无法预测需要多长时间?
当我用Clipper编码时,我常常这样做,而这只是迭代字符'/',' - ','\','|'的问题.并将它们放在同一个地方.
在C++中用于实现(或类似)的任何方式/链接/库?
目标是*nix环境.
编辑: