python django 做 网站seo优化教程下载
引言:本篇主要在linux下的C++实现进度条的功能。按照多文件编程,同时使用Makefile文件完成多文件的编译、连接。
首先创建头文件:
1. progress.h
#pragma once
#include <iostream>
#include <cstring>
#include <iomanip>
#include <unistd.h>
using namespace std;
class Prog{
public:Prog(int time,const string sample);void get_progress();
private:int _time;string _sample;
};
首先定义一个Prog的类,成员变量为进度条需要多少秒和进度条样式。并声明构造函数和创建进度条的函数。
2. progress.cpp
#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<cont;i++){arry[i] = _sample[0];cout<<'['<<arry<<setw(100-i)<<']'<<" ["<<i+1<<"%"<<"]"<<" ["<<s[i%2]<<']'<<'\r'; //只回车不换行cout<<flush; //强制刷新缓冲区usleep(10000*_time);}cout<<endl;
}
实现构造函数,初始化列表,如果创建对象时,不传值,默认为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.cppg++ main.cpp progress.cpp -o prog
格式为:
target : dependency
(Tab)rule
目标文件 :依赖项
(Tab键)规则