• Linux下C++编程-进度条


    引言:本篇主要在linux下的C++实现进度条的功能。按照多文件编程,同时使用Makefile文件完成多文件的编译、连接。

    首先创建头文件:

    1. progress.h

    1. #pragma once
    2. #include
    3. #include
    4. #include
    5. #include
    6. using namespace std;
    7. class Prog{
    8. public:
    9. Prog(int time,const string sample);
    10. void get_progress();
    11. private:
    12. int _time;
    13. string _sample;
    14. };

     首先定义一个Prog的类,成员变量为进度条需要多少秒和进度条样式。并声明构造函数和创建进度条的函数。

    2. progress.cpp 

    1. #include "progress.h"
    2. Prog::Prog(int time,const string sample)
    3. :_time(5)
    4. ,_sample("#")
    5. {
    6. _time = time;
    7. _sample = sample;
    8. }
    9. void Prog::get_progress(){
    10. int cont = 100; //进度为100%
    11. char arry[101]; //要放一个'\0'
    12. string s = "|/"; //进度条最后价格旋转动效
    13. memset(arry,'\0',101); //把arry中的全部置为'\0'
    14. for(int i = 0; i
    15. arry[i] = _sample[0];
    16. cout<<'['<setw(100-i)<<']'<<" ["<1<<"%"<<"]"<<" ["<2]<<']'<<'\r'; //只回车不换行
    17. cout<//强制刷新缓冲区
    18. usleep(10000*_time);
    19. }
    20. cout<
    21. }

     实现构造函数,初始化列表,如果创建对象时,不传值,默认为5秒完成,样式为#。

    3. main.cpp 

    1. #include "progress.h"
    2. int main()
    3. {
    4. Prog p1(3,"#");
    5. p1.get_progress();
    6. return 0;
    7. }

     这样这个进度条功能已经实现,但是每次如果要编译就要:

    g++ main.cpp progress.cpp

    这时候就要使用Makefile了,这是一个文件, 我们需要在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。

    4. Makefile

    1. prog : main.cpp progress.cpp
    2. g++ main.cpp progress.cpp -o prog

     格式为:

    target : dependency

    (Tab)rule

    目标文件 :依赖项

    (Tab键)规则

     5. 实现效果

  • 相关阅读:
    深浅拷贝的区别?如何实现一个深拷贝?
    轻量级简约仪表板Dasherr
    2022-04-16 对于加班的感悟
    C++ 之 perf+火焰图分析与Debug
    怎么在idea中搭建一个maven项目?
    cppcheck 代码静态扫描
    Kotlin File useLines nameWithoutExtension extension
    LeetCode简单题之不同的平均值数目
    总结进程和线程的区别【重点】
    FileZilla创建FTP服务器-版本1.2
  • 原文地址:https://blog.csdn.net/weixin_56821642/article/details/133747334