C++ 设置控制台输出颜色

#include <stdint.h>
#include <iostream>
#include <string>
#include <Windows.h>

//   0 = 黑色      8 = 灰色
//   1 = 蓝色      9 = 淡蓝色
//   2 = 绿色      A = 淡绿色
//   3 = 浅绿色    B = 淡浅绿色
//   4 = 红色      C = 淡红色
//   5 = 紫色      D = 淡紫色
//   6 = 黄色      E = 淡黄色
//   7 = 白色      F = 亮白色

//   控制台前景颜色
enum ConsoleForegroundColor
{
    enmCFC_Red          = FOREGROUND_INTENSITY | FOREGROUND_RED,
    enmCFC_Green        = FOREGROUND_INTENSITY | FOREGROUND_GREEN,
    enmCFC_Blue         = FOREGROUND_INTENSITY | FOREGROUND_BLUE,
    enmCFC_Yellow       = FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN,
    enmCFC_Purple       = FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE,
    enmCFC_Cyan         = FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE,
    enmCFC_Gray         = FOREGROUND_INTENSITY,
    enmCFC_White        = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE,
    enmCFC_HighWhite    = FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE,
    enmCFC_Black        = 0,
};

enum ConsoleBackGroundColor
{
    enmCBC_Red          = BACKGROUND_INTENSITY | BACKGROUND_RED,
    enmCBC_Green        = BACKGROUND_INTENSITY | BACKGROUND_GREEN,
    enmCBC_Blue         = BACKGROUND_INTENSITY | BACKGROUND_BLUE,
    enmCBC_Yellow       = BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN,
    enmCBC_Purple       = BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_BLUE,
    enmCBC_Cyan         = BACKGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_BLUE,
    enmCBC_White        = BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE,
    enmCBC_HighWhite    = BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE,
    enmCBC_Black        = 0,
};

void SetConsoleColor(ConsoleForegroundColor foreColor = enmCFC_White, ConsoleBackGroundColor backColor = enmCBC_Black)
{
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(handle, foreColor | backColor);
}

int32_t main()
{
    int32_t allForeColors[] = { enmCFC_Red, enmCFC_Green, enmCFC_Blue, enmCFC_Yellow, enmCFC_Purple, enmCFC_Cyan, enmCFC_Gray, enmCFC_White, enmCFC_HighWhite, enmCFC_Black };
    std::string allForeColorsName[] = { "enmCFC_Red", "enmCFC_Green", "enmCFC_Blue", "enmCFC_Yellow", "enmCFC_Purple", "enmCFC_Cyan", "enmCFC_Gray", "enmCFC_White", "enmCFC_HighWhite", "enmCFC_Black" };
    int32_t allBackColors[] = { enmCBC_Red, enmCBC_Green, enmCBC_Blue, enmCBC_Yellow, enmCBC_Purple, enmCBC_Cyan, 0, enmCBC_White, enmCBC_HighWhite, enmCBC_Black };
    std::string allBackColorsName[] = { "enmCBC_Red", "enmCBC_Green", "enmCBC_Blue", "enmCBC_Yellow", "enmCBC_Purple", "enmCBC_Cyan", "0", "enmCBC_White", "enmCBC_HighWhite", "enmCBC_Black " };
    for(uint32_t i = 0; i < sizeof(allForeColors) / sizeof(allForeColors[0]); ++i)
    {
        for(uint32_t j = 0; j < sizeof(allForeColors) / sizeof(allForeColors[0]); ++j)
        {
            if(i != j && allBackColorsName[j] != "0")
            {
                SetConsoleColor((ConsoleForegroundColor)allForeColors[i], (ConsoleBackGroundColor)allBackColors[j]);
                std::cout << "ForeColor:" << allForeColorsName[i] <<",backColor:"<< allBackColorsName[j] << std::endl;
            }
        }
    }
    getchar();
    return 0;
}

时间: 2024-10-12 18:00:19

C++ 设置控制台输出颜色的相关文章

python之设置控制台字体颜色

# 设置控制台输出字体颜色 # 格式:\033[显示方式;前景色;背景色m # 采用终端默认设置:\033[0m # 红色字体 print('\033[1;31m') print('*' * 10) print('hello world!') print('*' * 10) print('\033[0m') # 绿色字体 print('\033[1;32m' + 'green' + '\033[0m') # 蓝色字体 print('\033[1;34m' + 'blue' + '\033[0m'

c语言编程设置控制台字体颜色

一.设置字体颜色: 1. 0 = 黑色       8 = 灰色 1 = 蓝色       9 = 淡蓝色 2 = 绿色       A = 淡绿色 3 = 浅绿色     B = 淡浅绿色 4 = 红色       C = 淡红色 5 = 紫色       D = 淡紫色 6 = 黄色       E = 淡黄色 7 = 白色       F = 亮白色 #include <stdlib.h> system("color 2");system("color F&

如何设置控制台字体颜色

可以利用SetConsoleTextAttribute函数实现对控制台字体颜色.下划线等格式的设置 1. SetConsoleTextAttribute 函数原型 1 BOOL WINAPI SetConsoleTextAttribute( 2 _In_ HANDLE hConsoleOutput, // 控制台输出流句柄 3 _In_ WORD wAttributes // 设置属性 4 ); hConsoleOutput [输入参数] 控制台屏幕的输出流的句柄(handle to conso

Python控制台输出颜色

1 格式:\033[显示方式;前景色;背景色m 说明: 前景色            背景色           颜色 --------------------------------------- 30                40              黑色 31                41              红色 32                42              绿色 33                43              黃色 34

控制台终端输出颜色

在使用putty.secureCRT.XShell等终端仿真器连接linux系统时,ls.vim等工具的输出都含有各种颜色,这些颜色的输出大大地增强了文本的可读性. 一.终端文本颜色输出的一般示例 在bash中,通常我们可以使用echo命令加-e选项输出各种颜色的文本,例如: echo -e "\033[31mRed Text\033[0m"echo -e "\033[32mGreen Text\033[0m"echo -e "\033[33mYellow

Linux终端和win32控制台文本颜色输出

在使用putty.secureCRT.XShell等终端仿真器连接linux系统时,ls.vim等工具的输出都含有各种颜色,这些颜色的输出大大地增强了文本的可读性. 通常我们可以使用echo命令加-e选项输出各种颜色的文本,例如:echo -e "\033[31mRed Text\033[0m",可以输出红色的字体“Red Text”.其中:"\033[31m"和"\033[0m"是ANSI转义序列(ANSI escape code/sequen

控制台输出时设置字体及背景颜色

1.改变整个控制台的颜色用 system("color 0A");其中color后面的0是背景色代号,A是前景色代号.各颜色代码如下:0=黑色1=蓝色2=绿色3=湖蓝色4=红色5=紫色6=黄色7=白色8=灰色9=淡蓝色A=淡绿色B=淡浅绿色C=淡红色D=淡紫色E=淡黄色F=亮白色2.改变下一个输出或者输入字体和背景的颜色 采用SetConsoleTextAttribute函数,如White on Black: SetConsoleTextAttribute(GetStdHandle(S

利用正则实现彩色控制台输出

近期忙了一阵less的二次开发的工作,期间遇到了不少须要向控制台输出彩色文字的需求.翻了下曾经同事的代码,发现要么自己拼转义字符串,要么使用一些不太好用的第三方库.总之都不是非常合自己的口味. 依照自己的口味,一个好的第三方库应该满足例如以下需求: 要支持丰富的颜色设置,同一时候设置颜色又不能太累赘,并且要支持console.log的通配符表示方法以降低拼字符串的工作.cli-color和colors的语法类似,都是採用方法来设定字符串颜色: // colors console.log("thi

python输出颜色与样式的方法

一.输出颜色与样式的方法 上次遇到这个问题就想写下来,其实当时我也不怎么会,老师说这个东西不需要理解,只需要死记硬背,写的多了就记住了,所以今天搜集了几篇文章,加上自己的理解,写下了这篇python 输出颜色的样式与方法的文章,一方面想自己记录下自己的理解,另一方面想用自己通俗的理解送给需要的盆友. 在写python 程序代码的时候,我们知道python输出的字符串颜色和一般字符相同,但是许多时候,我们需要强调某些字符,就需要把其变为易于认出的颜色或者显著的样子. 格式:"\033[字背景颜色: