在c++中控制台的默認字體顏色是白色,但是有時我們需要其他顏色,比如用紅色提示錯誤,使用綠色提示計算完成,使用黃色表示警示等等,那么如何設置控制台文字的顏色呢?
一種方法是通過右鍵控制台進行顏色設置,但是這種方法的問題在於它是全局的,沒有具體文字的區分。另外一種方法就是使用代碼來修改,本文主要介紹的就是這種方法。
最重要的函數是SetConsoleTextAttribute()函數,這個函數需要提前引入windows.h庫文件方可使用。這個函數接受兩個參數,第一個參數要獲得句柄,即GetStdHandle(STD_OUTPUT_HANDLE),第二個參數用來設置顏色,屬性相加是在屬性值中間添加 “|” 隔開,舉例如下:
FOREGROUND_INTENSITY 表示設置前景色為高亮顯示。
FOREGROUND_RED 表示設置前景色為紅色,即字體顏色為紅色。
FOREGROUND_GREEN 表示設置前景色為綠色,即字體顏色為綠色。
FOREGROUND_BLUE 表示設置前景色為藍色,即字體顏色為藍色。
BACKGROUND_INTENSITY 表示設置背景色為高亮顯示。
BACKGROUND_RED 表示設置背景色為紅色。
BACKGROUND_GREEN 表示設置背景色為綠色。
BACKGROUND_BLUE 表示設置背景色為藍色。
FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE 即設置前景色為高亮顯示,並且疊加紅、綠、藍(即白色)
注意:默認情況下,控制台字符的顏色是白色,沒有沒有高亮。
下面是函數的應用:
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN); cout << "ATTENTION: please create the 'outputfolder' folder in the same level directory of main.cpp." << endl; SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY|FOREGROUND_RED|FOREGROUND_GREEN|FOREGROUND_BLUE);
即這里實際上是將cout的顏色設置為高亮的綠色,然后緊接着下面cout的輸出是白色,這樣就可以解決本文開頭我的問題了。