写了个非常简单的进度条类,能设置哪个字符替换哪个字符还有颜色,废话少说,上码,望大家给点意见啊^_^~ /* * File: progressBar.h * Author: xizhibei * * Created on May 24, 2011, 4:34 PM */ #ifndef PROGRESSBAR_H #define PROGRESSBAR_H #include <stdio.h> #define ScreenWidth 75 typedef enum _ProgressBarColor { Black = 30, Red, Green, Yellow, Blue, Purple, DarkBlue, White } ProgressBarColor; typedef enum _ProgressBarBGColor { BGBlack = 40, BGRed, BGGreen, BGYellow, BGBlue, BGPurple, BGDarkBlue, BGWhite } ProgressBarBGColor; class ProgressBar { public: ProgressBar(ProgressBarColor color = Black, ProgressBarBGColor bgColor = BGWhite, char what = '>', char towhat = '='); void set(int percent); void setType(char what = '>', char towhat = '='); void setColor(ProgressBarColor color = Black, ProgressBarBGColor bgColor = BGWhite); private: ProgressBarColor color; ProgressBarBGColor bgColor; char what; char towhat; }; #endif /* PROGRESSBAR_H */ /* * File: ProgressBar.cpp * Author: xizhibei * * Created on May 24, 2011, 4:34 PM */ #include "progressBar.h" ProgressBar::ProgressBar(ProgressBarColor color, ProgressBarBGColor bgColor, char what, char towhat) { setType(what, towhat); setColor(color, bgColor); } void ProgressBar::set(int percent) { float f = float(percent) / 100; char progress[ScreenWidth]; for (int i = 0; i < ScreenWidth; i++) { if (float(i) / ScreenWidth <= f) progress[i] = what; else progress[i] = towhat; } printf("/033[%d;%dm/e[1A%s %3d%%/e[m/n",color,bgColor, progress, percent); } void ProgressBar::setType(char what, char towhat) { this->what = what; this->towhat = towhat; } void ProgressBar::setColor(ProgressBarColor color, ProgressBarBGColor bgColor) { this->color = color; this->bgColor = bgColor; } 用的方法就不多说了,现在我不知到还能添加什么功能,希望大家给点意见啊~