1. 程式人生 > >Cmd改變控制檯輸出顏色

Cmd改變控制檯輸出顏色

CMD:改變控制檯輸出顏色(比color **還強)

這種變色很低階(弱智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 淺白色 */

示例: 在這裡插入圖片描述

感謝你的支援,點個贊吧

最終通用程式(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;
}