c++控制檯 設置字體顏色

一種方法是直接在程序上方欄杆點右鍵,而後屬性處設置windows

優勢是設置後一勞永逸,不須要像後面方法那樣要本身把設置寫入程序代碼內函數

缺點是,一旦設置了就不能再改變了,程序從頭至尾都是那種設置。字體

 

第二種方法是使用windows API函數裏的system()spa

color /? 裏面寫的很清楚

顏色屬性由兩個十六進制數字指定 -- 第一個爲背景,第二個則爲前景。每一個數字能夠爲如下任何值之一:

0 = 黑色 8 = 灰色
1 = 藍色 9 = 淡藍色
2 = 綠色 A = 淡綠色
3 = 湖藍色 B = 淡淺綠色
4 = 紅色 C = 淡紅色
5 = 紫色 D = 淡紫色
6 = 黃色 E = 淡黃色
7 = 白色 F = 亮白色

如調用 system("color 02") 則顏色會變爲,黑底藍字
優勢是調用方便,只須要加一個函數便可
缺點是設置的是全局變量,也就是設置後,前面顯示的文字以及之後出現的都會變爲這個設置


第三種方法是SetConsoleTextAttribute()包含在頭文件 windows.h
函數原型BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);

參數

consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);
GetStdHandle(nStdHandle)是返回標準的輸入、輸出或錯誤的設備的句柄,也就是得到輸入、輸出/錯誤的屏幕緩衝區的句柄。
其參數nStdHandle的值爲下面幾種類型的一種:
含義
STD_INPUT_HANDLE 標準輸入的句柄
STD_OUTPUT_HANDLE 標準輸出的句柄
STD_ERROR_HANDLE 標準錯誤的句柄
wAttributes是用來設置顏色的參數:
wAttributes 顏色 對應的值
FOREGROUND_BLUE 字體顏色:藍 1
FOREGROUND_GREEN 字體顏色:綠 2
FOREGROUND_RED 字體顏色:紅 4
FOREGROUND_INTENSITY 前景色高亮顯示 8
BACKGROUND_BLUE 背景顏色:藍 16
BACKGROUND_GREEN 背景顏色:綠 32
BACKGROUND_RED
背景顏色:紅
64
BACKGROUND_INTENSITY 背景色高亮顯示 128
也就是說SetConsoleTextAttribute函數是靠一個字節的低四來控制前景色,高四位來控制背景色。
 
我仔細說明一下SetConsoleTextAttribute的第二個參數
  它是一個WORD型的變量,其實就是一個unsigned shot型
  範圍爲0~65535
  當值超過它時本身會出警告
十六位對應的輸出總結以下:
  0透明1前景藍2前景綠3前景紅4前景高亮5背景藍6背景綠7背景紅8背景高亮
  9透明10透明11上劃線12左劃線13右劃線14右劃線15透明16透明

一些混搭顏色:
黑:0
白:red+green+blue
黃:red+green
青:green+blue
紫:red+blue
相關文章
相關標籤/搜索