c++ - 向 C++ 控制台应用程序添加状态栏

标签 c++ linux console progress-bar status

我正在使用 C++ 制作一个 linux 应用程序,它会将信息打印到控制台。部分程序将需要一段时间来计算,我想在控制台中添加一个类似于 wget 中使用的状态栏的状态栏(我在下面给出了我自己的描述)。

%complete[===========>               ] eta

实现此目标的最佳方法是什么?是否有任何有用的库可以轻松添加此功能?

最佳答案

如果您的程序类似于 wget,也就是说,它基本上是一个不需要全屏 UI 的批处理程序(对此我推荐 ncurses),您可以使用该技巧来打印回车符(但是不是换行)在你的行之后;接下来你写的东西将覆盖同一行。

这是一个演示。

#include <iostream>
#include <unistd.h>

int main(void)
{

        for (int i = 0; i < 10; i++) {
                std::cout << "Status: " << i << "\r" << std::flush;
                sleep(1);
        }
        std::cout << "Completed.\n";
}

关于c++ - 向 C++ 控制台应用程序添加状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8200973/

相关文章:

c++ - #ifdef 和#endif 中无法访问的代码是否在编译/链接期间被删除?

linux - Windows 上文件扩展名的问题

linux - 如何对文件进行 gzip 压缩

javascript - Nodejs与C++程序通信?

c++ - 如何在给定 PID 的情况下隐藏进程的控制台?

c++ - 在控制台日志中保留巨大的数字

c++ - 如何使用 C++11 type_traits 创建自定义元编程测试结构?

c++ - 具有已删除析构函数的类型的动态对象是如何构造的?

c++ - 在 STL 中使用字符串中的删除关键字?

c++ - 如何使用 Windows 程序在 C++ 中获取控制台输出?