程序代码:
#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(),就是创建进度对象时传入的值。