Cmd改變控制檯輸出顏色
阿新 • • 發佈:2018-12-16
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;
}