zoukankan      html  css  js  c++  java
  • Boost学习笔记(六) progress_display注意事项

    progress_display可以用作基本的进度显示,但它有个固有的缺陷:无法把进度显示输出与程序的输出分离。

      这是因为progress_display和所有C++程序一样,都向标准输出(cout)输出字符,如果使用progress_display的程序也有输出操作,那么progress_display的进度显示就会一片混乱。

      一个解决办法是每次显示进度时都调用restart()重新显示进度刻度,然后用operator+=来指定当前进度,而不是简单的调用operator++

    #include <boost	imer.hpp>
    #include  <boostprogress.hpp>
    #include <boostprogress.hpp>
    #include <vector>
    #include <fstream>
    #include <booststatic_assert.hpp>
    #include <iostream>
    using namespace boost;
    using namespace std;
    
    int main()
    {
        vector<string> v(100,"aaa");  //一个字符串向量
        
        v[10]="";
        v[23]="";
    
        ofstream fs("c:\test.txt"); //文件输出 流
        progress_display pd(v.size());  //声明一个progress_display对象,基数是v的大小
    
        vector<string>::iterator pos;  //迭代器
        //开始写入文件
        for(pos=v.begin();pos!=v.end();++pos)
        {
            fs<<*pos<<endl;
            ++pd;
            if(pos->empty())
            {
                cout<<"null string #"<<(pos-v.begin())<<endl;
            }
            pd.restart(v.size());
            pd+=(pos-v.begin()+1);
        }
    }

  • 相关阅读:
    kvm克隆虚拟机
    vSAN添加license
    KVM虚拟机快照
    第二次作业及总结——数据类型和运算符
    第二次作业心得
    做完c语言作业的心得
    介绍自己
    awk数组 Jazz
    Java入门第一阶段总结
    区间dp入门+例题
  • 原文地址:https://www.cnblogs.com/zzu-liulei/p/6082590.html
Copyright © 2011-2022 走看看