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 ...
随机推荐
- Postgresql之闪回数据库示例
一.摘要 在Oracle中,若发生重大的误操作,那么我们可以使用flashback database命令来把数据库整体闪回到过去的误操作的时间点,当然前提是需要打开数据库的闪回功能. 在PG中,能否也 ...
- 火山引擎 DataLeap:揭秘字节跳动数据血缘架构演进之路
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维 ...
- 从源码MessageSource的三个实现出发实战spring·i18n国际化
1.前言 互联网业务出海,将已有的业务Copy to Global,并且开始对各个国家精细化,本土化的运营.对于开发人员来说,国际化很重要,在实际项目中所要承担的职责是按照客户指定的语言让服务端返回相 ...
- Unity3D 不挂载脚本自动初始化
https://blog.csdn.net/piai9568/article/details/98886028
- JS下载单个图片、单个视频;批量下载图片,批量下载视频
下载单张图片 import JSZip from "jszip"; import FileSaver from "file-saver"; downloadIa ...
- 10base-t的数据发送
功能 数据流(NIC) pin码 发送信号 发送回路 1 2 接收信号 接收回路 3 不使用 4 不使用 5 接收信号 接收回路 6 不使用 7 不使用 8 上图是基于10BASE-T ...
- springboot AOP配置
在Springboot中添加AOP配置分两步: 最近学习AOP ,记录一下,虽然很多名字不太清楚,但是问题不大 1:在pom.xml中添加AOP依赖 2:建一个AOP配置类 下面来看下代码是怎么实现的 ...
- 动态class 及 动态style
动态改变某一范围内的字体颜色 低于90 大于90小于95 大于95 两种方法都可以 <div class="dhd-num4" :style="{'col ...
- class和struct区别
类(class) 引用类型:将一个对象赋值给另一个对象时,系统不会对此对象进行拷贝,而会将指向这个对象的指针赋值给另一个对象,当修改其中一个对象的值时,另一个对象的值会随之改变. 结构体(struct ...
- 微信小程序中实现自定义省市区选择
背景: 1.小程序官方提供的省市区组件的数据与原有的数据对应不上,官方的数据太旧 2.小程序重构以后没有在使用vant等框架 实现过程: 1.安装依赖 a.微信小程序使用npm包配置: 1.初始化pa ...