当前位置:C++技术网 > 资讯 > 超简单!使用Boost实现控制台显示执行进度条

超简单!使用Boost实现控制台显示执行进度条

更新时间:2015-06-25 21:53:31浏览次数:1+次

程序代码:

#include <boost/progress.hpp>// - boost进度头文件
#include <iostream>
using namespace boost;
using namespace std;
#include <windows.h>
int main()
{
    progress_display p_d(100);// - 创建并设置总进度值,自动初始化起始值为0

    for (int i=0;i<100;i++)
    {
        Sleep(1000);
        ++p_d;// - 增加进度值,一次只能增加一个
    }
    cout<<"执行完毕!"<<endl;
    int i;
    cin>>i;// - 阻止执行完就马上退出
    return 0;
}

程序执行效果图如下:
 

代码说明:
1.如果不知道如何安装Boost库,请阅读《Windows下VS安装和使用Boost库入门》。
2.使用progress_display定义个对象,传入的数字就是最大的进度值。可以传递任意的无符号数字。对象内部设定好做大的进度值,并初始化起始进度值为0.
3.此对象自动计算进度比例,并使用*显示进度值。进度则是根据p_d当前的值自动计算得到。不需要你考虑内部实现细节。
4.此对象只能使用前置的++操作符自增进度。不要使用后置的++来自增哦。此进度类重载了++前置操作符进行自增的,没有重载后置和赋值等。而当前进度值为私有成员,所以无法直接操作当前进度值。
5.自增不要超过总进度值,否则就无意义了。
6.如果要查看当前进度值,调用成员函数count(),如果要查看总进度值,调用成员函数expected_count(),就是创建进度对象时传入的值。