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

上一篇:WIN10下设置惠普HP1050等打印机打印颜色,只打黑白或彩色


下一篇:NPOI 生成Excel (单元格合并、设置单元格样式:字段,颜色、设置单元格为下拉框并限制输入值、设置单元格只能输入数字等)