在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的输出是白色,这样就可以解决本文开头我的问题了。