cAPP.h头文件
前言
最近几天闲的没事,写了一个可以用来写简单的app程序的头文件,分享给大家!
头文库
#ifndef CAPP_H
#define CAPP_H
#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
class AppClass{
public:
AppClass(string colorStyle,int lengrth,int width,string title);
void gotoxy(int x,int y);
void box(string title,string words,UINT windows);
void sleep(double second);
void pos(int x,int y);
void cls(void);
void pause(void);
protected:
};
AppClass::AppClass(string colorStyle="f0",
/*由两个十六进制数组成
第一个对应于背景 第二个对应于前景
每个数字可以为以下任何值
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
*/
int length=45,//长度
int width=30,//宽度
string title="cAPP应用程序"//标题
)
{
string cmdColor="color "+colorStyle;
string cmdTitle="title "+title;
char cmdWindow[210];
sprintf(cmdWindow,"mode con cols=%d lines=%d",length,width);
system(cmdColor.c_str());
system(cmdWindow);
system(cmdTitle.c_str());
}
void AppClass::gotoxy(int x,int y){
HANDLE hOut;
hOut = GetStdHandle(STD_OUTPUT_HANDLE);//获取标注输出句柄
COORD pos;
pos.X = x;pos.Y = y;
SetConsoleCursorPosition(hOut, pos);//偏移光标位置
}
void AppClass::box(string title="无标题",string words=" ",UINT windows=MB_OK){
MessageBox(NULL,TEXT(words.c_str()),TEXT(title.c_str()),windows);
}
void AppClass::sleep(double second=1){
Sleep(second*1000);
}
void AppClass::pos(int x,int y){
SetCursorPos(x,y);
}
void AppClass::cls(void){system("cls");}
void AppClass::pause(void){system("pause");}
class AppTime: public AppClass{
public:
void putAllTime(void);
void putDate(void);
void putTime(void);
protected:
time_t nowtime;
};
void AppTime::putAllTime(void){
time(&nowtime); //获取1900年1月1日0点0分0秒到现在经过的秒数
tm*p=localtime(&nowtime); //将秒数转换为本地时间,年从1900算起,需要+1900,月为0-11,所以要+1
printf("%04d:%02d:%02d %02d:%02d:%02d\n",
p->tm_year + 1900, //年
p->tm_mon + 1,//月
p->tm_mday,//日
p->tm_hour,//时
p->tm_min,//分
p->tm_sec//秒
);
}
void AppTime::putDate(void){
time(&nowtime); //获取1900年1月1日0点0分0秒到现在经过的秒数
tm*p=localtime(&nowtime); //将秒数转换为本地时间,年从1900算起,需要+1900,月为0-11,所以要+1
printf("%04d:%02d:%02d\n",
p->tm_year + 1900, //年
p->tm_mon + 1,//月
p->tm_mday//日
);
}
void AppTime::putTime(void){
time(&nowtime); //获取1900年1月1日0点0分0秒到现在经过的秒数
tm*p=localtime(&nowtime); //将秒数转换为本地时间,年从1900算起,需要+1900,月为0-11,所以要+1
printf("%02d:%02d\n",
p->tm_hour,//时
p->tm_min//分
);
}
class color:public AppClass{
public:
void setTextColor(string color);
void setTextBackgroundColor(string color);
void setAllColor(string mb);
void setAllColor(int mb);
void textColorClean(void);
};
void color::setTextColor(string color="white"){
//设置Windows控制台打印颜色
int num = 4;
if (color == "littlewhite") num=0;
else if (color == "red") num=1;
else if (color == "green") num=2;
else if (color == "blue") num=3;
else if (color == "white") num=4;
else if (color == "skyblue") num=5;
else if (color == "yellow") num=6;
else if (color == "pink") num=7;
else if (color == "lightred") num=11;
else if (color == "lightgreen") num=12;
else if (color == "lightblue") num=13;
else if (color == "lightwhite") num=14;
else if (color == "lightskyblue") num=15;
else if (color == "lightyellow") num=16;
else if (color == "lightpink") num=17;
else num=4;
switch (num){
case 0://浅白色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY);
break;
case 1://红色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED);
break;
case 2://绿色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN);
break;
case 3://蓝色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE);
break;
case 4://白色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
break;
case 5://天蓝色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_GREEN);
break;
case 6://黄色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_RED);
break;
case 7://粉色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_RED);
break;
case 11://增强红色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED);
break;
case 12://增强绿色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN);
break;
case 13://增强蓝色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE);
break;
case 14://增强白色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
break;
case 15://增强天蓝色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_GREEN);
break;
case 16://增强黄色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_RED);
break;
case 17://增强粉色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_BLUE | FOREGROUND_RED);
break;
default://默认
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED);
break;
}
}
/*
设置字体背景色:
方法支持15种颜色(请传入相应的英文参数):
0、浅白色:littlewhite
1、红色:red 2、绿色:green 3、蓝色:blue
4、白色: white 5、天蓝色:skyblue 6、黄色:yellow
7、粉色: pink
11、亮红色:lightred 12、亮绿色:lightgreen 13、亮蓝色:lightblue
14、亮白色: lightwhite 15、亮天蓝色:lightskyblue 16、亮黄色:lightyellow
17、亮粉色: lightpink
注意:背景色一旦设置,就恢复不了原来的黑色字体背景了,除非不设置背景色
*/
void color::setTextBackgroundColor(string color="white"){
//设置Windows控制台打印颜色
int num = 4;
if (color == "littlewhite") num=0;
else if (color == "red") num=1;
else if (color == "green") num=2;
else if (color == "blue") num=3;
else if (color == "white") num=4;
else if (color == "skyblue") num=5;
else if (color == "yellow") num=6;
else if (color == "pink") num=7;
else if (color == "lightred") num=11;
else if (color == "lightgreen") num=12;
else if (color == "lightblue") num=13;
else if (color == "lightwhite") num=14;
else if (color == "lightskyblue") num=15;
else if (color == "lightyellow") num=16;
else if (color == "lightpink") num=17;
else num=4;
switch (num){
case 0://浅白色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY);
break;
case 1://红色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED);
break;
case 2://绿色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_GREEN);
break;
case 3://蓝色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE);
break;
case 4://白色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED);
break;
case 5://天蓝色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE | BACKGROUND_GREEN);
break;
case 6://黄色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_GREEN | BACKGROUND_RED);
break;
case 7://粉色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE | BACKGROUND_RED);
break;
case 11://增强红色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | BACKGROUND_RED);
break;
case 12://增强绿色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | BACKGROUND_GREEN);
break;
case 13://增强蓝色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | BACKGROUND_BLUE);
break;
case 14://增强白色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED);
break;
case 15://增强天蓝色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | BACKGROUND_BLUE | BACKGROUND_GREEN);
break;
case 16://增强黄色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_RED);
break;
case 17://增强粉色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_INTENSITY | BACKGROUND_BLUE | BACKGROUND_RED);
break;
default://默认
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED);
break;
}
}
void color::setAllColor(int mb=1){
switch(mb){
case 1:{
system("color f0");
break;
}
case 2:{
system("color 0f");
break;
}
case 3:{
system("color e0");
break;
}
}
}
void color::setAllColor(string mb){
char text=mb[0],backGround=mb[1];
string cmd="color "+text+backGround;
system(cmd.c_str());
}
void color::textColorClean(void){
setTextBackgroundColor();
setTextColor();
}
class timer:public AppClass{
public:
timer(void){
bclock=clock();
}
double stop(void){
return (clock()-bclock)/CLOCKS_PER_SEC;
}
private:
clock_t bclock;
};
#endif
后记
这就是cAPP.h
的全部内容了,把它粘贴到自己的编辑器上,再保存到你的c++系统文件夹里,然后就可以尽情地使用它了!
cAPP.h头文件的更多相关文章
- 【C】.h头文件的重复包含问题
.h头文件存在的意义就是封装,可以方便多个.c源文件使用,但要防止.h头文件被同一个.c源文件多次包含. 例如, io.h文件 #ifndef _IO_H_ #define _IO_H_ #defin ...
- 【转】【Raspberry Pi】Unix NetWork Programming:配置unp.h头文件环境
一.初衷 近期正在做网络计算编程的作业.要求平台为unix/linux,想着Raspberry Pi装的Debian系统也是Linux改的,也应该能够勉强用着,所以就用它来做作业了! 二.说明 先把环 ...
- Android JNI开发生成.h头文件问题(转)
在JNI开发中,首先要将建立的anroid类编译成.h文件,编译用到命令javah,由于第一次用,以前对java的编译过程也不怎么了解,所以走了好多弯路,网络没有对这一步的详细介绍,这里讲一下: 通过 ...
- 基础知识复习(二)——stdafx.h 头文件及x&(x-1)运算
今天好久没写过C++程序了,使用VS2013 新建空的控制台程序,结果自动生成了头文件和main 方法. 就了解了stdafx.h头文件的含义及用法. stdafx:standard Applicat ...
- hpp头文件与h头文件的区别
hpp,其实质就是将.cpp的实现代码混入.h头文件当中,定义与实现都包含在同一文件,则该类的调用者只需要include该hpp文件即可,无需再将cpp加入到project中进行编译.而实现代码将直接 ...
- Android JNI开发生成.h头文件问题
在JNI开发中,首先要将建立的anroid类编译成.h文件,编译用到命令javah,由于第一次用,以前对java的编译过程也不怎么了解,所以走了好多弯路,网络没有对这一步的详细介绍,这里讲一下: 通过 ...
- C/C++关于string.h头文件和string类
学习C语言时,用字符串的函数例如stpcpy().strcat().strcmp()等,要包含头文件string.h 学习C++后,C++有字符串的标准类string,string类也有很多方法,用s ...
- 找不到所需要的ndbm.h头文件
具体描述: 通过deb包安装gdbm之后,发现找不到所需要的ndbm.h头文件.但是你会发现一个叫gdbm-ndbm.h的文件,你只需要把文件名改成ndbm.h就可以了,当然需要一定权限. sudo ...
- stdlib.h 头文件
stdlib 头文件即standard library标准库头文件.stdlib.h里面定义了五种类型.一些宏和通用工具函数. 类型例如size_t.wchar_t.div_t.ldiv_t和lldi ...
- .h头文件和.c文件的作用和区别
.h头文件和.c文件的作用和区别 在小工程中,.h的作用没有得到充分的使用,在大工程中才能充分体现出.h文件的作用. .h和.c文件都是代码.头文件好处有: 一:头文件便于共享,只需要添加一句“inc ...
随机推荐
- QFileDialog实现同时选择文件和文件夹,确认取消按钮英文问题解决方法
如下图所示,需求是同时能够选择文件或者文件夹,但是QFileDialog文件窗口类要么只能选文件,要么只能选文件夹,无法同时去选择文件和文件夹: 要实现这样的需求,封装了一个类,实现同时选择文件和文件 ...
- Java处理正则匹配卡死(正则回溯问题)
目录 背景 项目现场问题 问题跟踪 优化方案 处理正则问题 使用子线程来匹配正则实现 监控线程实现 最优选择方案 参考文章 正则匹配卡死怎么来的? 背景 背景:这次问题的背景是项目上遇到了,在使用正则 ...
- TextBox 事件
1.键盘事件 界面代码: <Grid> <Grid.RowDefinitions> <RowDefinition Height="auto">& ...
- 滑动窗口模板 leetcode 209题
""" 给定一个含有 n 个正整数的数组和一个正整数 target . 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, nums ...
- Dockerfile的指令和编写
每个优秀的人,背后都有一段沉默的时光 前言 学习Docker基础知识 什么是Dockerfile? Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明 指 ...
- window 0x00007b无法正常启动解决方法
参考链接: https://pcedu.pconline.com.cn/1570/15702605.html directx修复工具下载: https://www.onlinedown.net/sof ...
- cat /dev/null > file后,ls查看文件大小未减小,du查看变为0
一句话总结: 其他程序正在使用command > file写入文件:将command程序kill后使用command >> file写入文件,即可在command写入file时,用c ...
- c++练习267题 火柴棒等式
*267题 原题传送门:http://oj.tfls.net/p/267 题解: #include<bits/stdc++.h>using namespace std;int c,m;in ...
- jenkins目录
Jenkins目录详解: jobs目录:创建的所有jenkins工程.并含有所有构建历史记录和日志.其中config.xml为具体配置. plugins:所有插件 workspace:构建工程本机源码 ...
- arm架构安装mysql5.7
添加mysql用户组和mysql用户,用于隔离mysql进程 groupadd -r mysql && useradd -r -g mysql -s /sbin/nologin -M ...