曾经,我非常羡慕那些人见人爱的人,我也想要变成那样,可是后来我才明白人见人爱也是需要天赋的,后来我开始默默努力,我想,就算我不能让每个人都喜欢我,至少因为我做的努力能得到别人的尊重。

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

 

posted @ 2018-05-29 22:33  Wayne-Zhu  阅读(12299)  评论(0编辑  收藏  举报

一分耕耘,一分收获。