設置c++中cout輸出的字體顏色


  在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的輸出是白色,這樣就可以解決本文開頭我的問題了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM