CMD:改变控制台输出颜色(比color **还强)
本篇文章是原创文章,转载请声明出处:
https://blog.csdn.net/Lemopig/article/details/83243236
这种变色很低级(弱智color 2f)
在CMD中:
color:
设置默认的控制台前景和背景颜色。
COLOR [attr]
attr 指定控制台输出的颜色属性。
颜色属性由两个十六进制数字指定 – 第一个
对应于背景,第二个对应于前景。每个数字
可以为以下任何值:
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
如果没有给定任何参数,此命令会将颜色还原到 CMD.EXE 启动时
的颜色。这个值来自当前控制台
窗口、/T 命令行开关或 DefaultColor 注册表
值。
如果尝试使用相同的
前景和背景颜色来执行
COLOR 命令,COLOR 命令会将 ERRORLEVEL 设置为 1。
估计CMD工作者们已经厌烦了
这时候,C++派上了用场
转折:
C++:利用输出控制台的句柄实现变色,并与CMD嵌合
Handle:STD_OUTPUT_HANDLE
#include<windows.h>
void color(int a){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
展示一张C++句柄变色效果图:
函数讲解:
#include<windows.h>
void color(int a){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
//GetStdHandle(STD_OUTPUT_HANDLE);函数获取输出句柄
//SetConsoleTextAttribute(***,***);用于调色
}
STD_OUTPUT_HANDLE:基本输出句柄,用于控制台
完善程序:(后边有成型的程序了)
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<windows.h>
using namespace std;
void color(int a){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
int main(){
int n;
scanf("%d",&n);
color(n);
printf("Colored Texted!");
return 0;
}
/*
字
1 深蓝色
2 深绿色
3 深青色
4 深红色
5 深粉色
6 黄色
7 深白色
8 灰色
9 浅蓝色
10 浅绿色
11 浅青色
12 浅红色
13 浅粉色
14 浅黄色
15 浅白色
背景
1~15 黑色
16~31 深蓝色
32~47 深绿色
48~63 深青色
64~79 深红色
80~95 深粉色
96~111 深黄色
112~127 深白色
128~143 灰色
144~159 浅蓝色
160~175 浅绿色
176~191 浅青色
192~207 浅红色
208~223 浅粉色
224~239 浅黄色
240~255 浅白色
*/
示例:
Exe版下载地址:
Colorc.exe
这个程序是由东师附中明珠校区的小朋友CM制作的
CSDN传资源付费,于是他把程序放在了上面的链接上
用法:
colorc /? 查看用法
colorc [displaymode]
其中 dlsplaymode 是个整数,具体请看colorc /?
colorc 恢复正常显示
感谢你的支持,点个赞吧
最终通用程序(C++):
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<windows.h>
using namespace std;
void color(int a){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);
}
void help();
int main(int argc,char**argv){
if(argc==1){
color(7);
return 0;
}
if(argv[1][1]<'0'||argv[1][1]>'9'){
help();
return 0;
}
int n,len=strlen(argv[1]);
for(register int i=0;i<len;i++)n=n*10+argv[1][i]-48;
color(n);
return 0;
}
void help(){
printf("\nColor-Pro 颜色处理小工具\n\n直接输入程序名恢复原色\n\n");
printf("字\n");
printf("1 深蓝色\n");
printf("2 深绿色\n");
printf("3 深青色 \n");
printf("4 深红色\n");
printf("5 深粉色\n");
printf("6 黄色\n");
printf("7 深白色\n");
printf("8 灰色\n");
printf("9 浅蓝色\n");
printf("10 浅绿色\n");
printf("11 浅青色 \n");
printf("12 浅红色 \n");
printf("13 浅粉色\n");
printf("14 浅黄色 \n");
printf("15 浅白色 \n");
printf("\n");
printf("背景\n");
printf("1~15 黑色 \n");
printf("16~31 深蓝色 \n");
printf("32~47 深绿色\n");
printf("48~63 深青色\n");
printf("64~79 深红色\n");
printf("80~95 深粉色\n");
printf("96~111 深黄色\n");
printf("112~127 深白色\n");
printf("128~143 灰色\n");
printf("144~159 浅蓝色\n");
printf("160~175 浅绿色\n");
printf("176~191 浅青色\n");
printf("192~207 浅红色\n");
printf("208~223 浅粉色\n");
printf("224~239 浅黄色\n");
printf("240~255 浅白色\n");
printf("Example: colorc 15\n");
color(15);
printf("Colored Text:Hello");
color(7);
return;
}