我想为我的终端应用程序制作一个进度条,其工作方式类似于:
[XXXXXXX ]
这将直观地指示在该过程完成之前还剩下多少时间。
我知道我可以通过将它们添加到字符串中然后简单地 printf 来打印越来越多的 X,但这看起来像:
[XXXXXXX ]
[XXXXXXXX ]
[XXXXXXXXX ]
[XXXXXXXXXX ]
或类似的东西(显然您可以使用间距。)但这在视觉上并不美观。有没有办法在不重新打印的情况下用新文本更新终端中的打印文本?这都是linux、c++下的。
最佳答案
在打印新的“版本”时尝试使用 \r
而不是 \n
。
for(int i=0;i<=100;++i) printf("\r[%3d%%]",i);
printf("\n");
https://stackoverflow.com/questions/1337529/
相关文章:
linux - 在 PHP CLI 中设置 max_execution_time
linux - 为什么 Linux 不通过 TSS 使用硬件上下文切换?
linux - "zero copy networking"与 "kernel bypass"?
ruby-on-rails - Ruby on Rails - 无法将 "\x89"从 ASCII-
python - 在 Ubuntu 中启动时运行 Python 脚本
c - 为什么 pthread 互斥锁被认为是 "slower"而不是 futex?
linux - 使用 linux 命令行 (bash) 从网络摄像头拍照