我使用以下几行在我的 c++ 程序中输出模拟的进度信息,
double N=0;
double percent=0;
double total = 1000000;
for (int i; i<total; ++i)
{
percent = 100*i/total;
printf("\r[%6.4f%%]",percent);
}
它工作正常!
但是问题是我看到终端光标一直在数字中循环闪烁,这很烦人,有谁知道如何摆脱这个?
我见过一些程序,如 wget 或 ubuntu apt,它们也使用进度条或百分比,但它们似乎没有光标闪烁的问题,我想知道它们是怎么做到的?
谢谢!
原文由 Daniel 发布,翻译遵循 CC BY-SA 4.0 许可协议
只是一个猜测:尝试使用适当数量的“\b”(退格)字符而不是“\r”。
== 编辑 ==
我不是 Linux shell 向导,但这可能有效:
不要忘记
#include <cstdlib>
或<iostream>
。