Cmd改变输出颜色

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;
}

猜你喜欢

转载自blog.csdn.net/Lemopig/article/details/83243236