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

  • 相关阅读:
    Codeforces461E Appleman and a Game 做题心得
    关于贪心问题的处理
    各种容斥 笔记
    博弈论 笔记
    家庭多个路由器组网方案(AP+AC)
    21.06.06 训练赛
    Redirect...
    Web Api实践系列(三)route特性使用
    《Red Tuner》隐私政策
    前缀和-1915. 最美子字符串的数目
  • 原文地址:https://www.cnblogs.com/zhuzhenwei918/p/9108335.html
Copyright © 2011-2022 走看看