引言:本篇主要在linux下的C++实现进度条的功能。按照多文件编程,同时使用Makefile文件完成多文件的编译、连接。
首先创建头文件:
- #pragma once
- #include
- #include
- #include
- #include
- using namespace std;
- class Prog{
- public:
- Prog(int time,const string sample);
- void get_progress();
- private:
- int _time;
- string _sample;
- };
首先定义一个Prog的类,成员变量为进度条需要多少秒和进度条样式。并声明构造函数和创建进度条的函数。
- #include "progress.h"
- Prog::Prog(int time,const string sample)
- :_time(5)
- ,_sample("#")
- {
- _time = time;
- _sample = sample;
- }
- void Prog::get_progress(){
- int cont = 100; //进度为100%
- char arry[101]; //要放一个'\0'
- string s = "|/"; //进度条最后价格旋转动效
- memset(arry,'\0',101); //把arry中的全部置为'\0'
- for(int i = 0; i
- arry[i] = _sample[0];
- cout<<'['<
setw(100-i)<<']'<<" ["<1<<"%"<<"]"<<" ["<2]<<']'<<'\r'; //只回车不换行 - cout<
//强制刷新缓冲区 - usleep(10000*_time);
- }
- cout<
- }
实现构造函数,初始化列表,如果创建对象时,不传值,默认为5秒完成,样式为#。
3. main.cpp
- #include "progress.h"
- int main()
- {
- Prog p1(3,"#");
- p1.get_progress();
- return 0;
- }
这样这个进度条功能已经实现,但是每次如果要编译就要:
g++ main.cpp progress.cpp
这时候就要使用Makefile了,这是一个文件, 我们需要在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。
4. Makefile
- prog : main.cpp progress.cpp
- 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