IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 控制台输出彩色文字 -> 正文阅读

[C++知识库]控制台输出彩色文字

控制台输出彩色文字

1.Unbuntu系统

  • 首先定义各种颜色
#define RESET       "\033[0m"
#define BLACK       "\033[30m"             /* Black */
#define RED         "\033[31m"             /* Red */
#define GREEN       "\033[32m"             /* Green */
#define YELLOW      "\033[33m"             /* Yellow */
#define BLUE        "\033[34m"             /* Blue */
#define MAGENTA     "\033[35m"             /* Magenta */
#define CYAN        "\033[36m"             /* Cyan */
#define WHITE       "\033[37m"             /* White */
#define BOLDBLACK   "\033[1m\033[30m"      /* Bold Black */
#define BOLDRED     "\033[1m\033[31m"      /* Bold Red */
#define BOLDGREEN   "\033[1m\033[32m"      /* Bold Green */
#define BOLDYELLOW  "\033[1m\033[33m"      /* Bold Yellow */
#define BOLDBLUE    "\033[1m\033[34m"      /* Bold Blue */
#define BOLDMAGENTA "\033[1m\033[35m"      /* Bold Magenta */
#define BOLDCYAN    "\033[1m\033[36m"      /* Bold Cyan */
#define BOLDWHITE   "\033[1m\033[37m"      /* Bold White */

实际输出时,根据颜色可直接输出

// 输出红色
std::cout << "\033[31m]" << "Red words" << "\033[0m" << std::endl;
  • 设置颜色匹配函数
inline std::string GetConsoleFrontColor(CONSOLE_FRONT_COLOR_E cfc = CONSOLE_FRONT_COLOR_E::CFC_WHITE)
{
	std::string cfc_color = WHITE;
	switch (cfc)
	{
	case CONSOLE_FRONT_COLOR_E::CFC_RESET:
		cfc_color = RESET;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_BLACK:   
		cfc_color = BLACK;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_RED:
		cfc_color = RED;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_GREEN:
		cfc_color = GREEN;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_YELLOW:
		cfc_color = YELLOW;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_BLUE:
		cfc_color = BLUE;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_MAGENTA:
		cfc_color = MAGENTA;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_CYAN:
		cfc_color = CYAN;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_WHITE:
		cfc_color = WHITE;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_BOLDBLACK:
		cfc_color = BOLDBLACK;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_BOLDRED:
		cfc_color = BOLDRED;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_BOLDGREEN:
		cfc_color = BOLDGREEN;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_BOLDYELLOW:
		cfc_color = BOLDYELLOW;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_BOLDBLUE:
		cfc_color = BOLDBLUE;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_BOLDMAGENTA:
		cfc_color = BOLDMAGENTA;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_BOLDCYAN:
		cfc_color = BOLDCYAN;
		break;
	case CONSOLE_FRONT_COLOR_E::CFC_BOLDWHITE:
		cfc_color = BOLDWHITE;
		break;
	default:
		cfc_color = WHITE;
		break;
	}

	return cfc_color;
};
  • 函数调用

    void ShowMessage(const std::string msg, CONSOLE_FRONT_COLOR_E cfc)
    {
        std::string color = GetConsoleFrontColor(cfc);
        std::string color_reset = GetConsoleFrontColor(CONSOLE_FRONT_COLOR_E::CFC_RESET);
        // 注意:这里最后要输出一个reset,否则颜色设置之后一直保持不变。
        std::cout << color <<  msg << color_reset << std::endl; 
    }
    
    // 调用
    ShowMessage("Hello world!", CONSOLE_FRONT_COLOR_E::CFC_GREEN);
    

参考:

(原+转)ubuntu终端输出彩色文字

2.Windows控制台颜色

windows采用16进制数表示各个颜色,颜色之间可以组合

//   0 : 黑色      8 : 灰色
//   1 : 蓝色      9 : 淡蓝色
//   2 : 绿色      A : 淡绿色
//   3 : 浅绿色    B : 淡浅绿色
//   4 : 红色      C : 淡红色
//   5 : 紫色      D : 淡紫色
//   6 : 黄色      E : 淡黄色
//   7 : 白色      F : 亮白色
#include <stdint.h>
#include <iostream>
#include <string>
#include <Windows.h>

//   控制台前景颜色
enum ConsoleForegroundColor
{
    CFC_Red          = FOREGROUND_RED,
    CFC_RedI         = FOREGROUND_INTENSITY | FOREGROUND_RED,
    CFC_Green        = FOREGROUND_INTENSITY | FOREGROUND_GREEN,
    CFC_Blue         = FOREGROUND_INTENSITY | FOREGROUND_BLUE,
    CFC_Yellow       = FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN,
    CFC_Purple       = FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE,
    CFC_Cyan         = FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE,
    CFC_Gray         = FOREGROUND_INTENSITY,
    CFC_White        = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE,
    CFC_HighWhite    = FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE,
    CFC_Black        = 0,
};

// 背景色枚举值
enum ConsoleBackGroundColor
{
    CBC_Red          = BACKGROUND_INTENSITY | BACKGROUND_RED,
    CBC_Green        = BACKGROUND_INTENSITY | BACKGROUND_GREEN,
    CBC_Blue         = BACKGROUND_INTENSITY | BACKGROUND_BLUE,
    CBC_Yellow       = BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN,
    CBC_Purple       = BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_BLUE,
    CBC_Cyan         = BACKGROUND_INTENSITY | BACKGROUND_GREEN | BACKGROUND_BLUE,
    CBC_White        = BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE,
    CBC_HighWhite    = BACKGROUND_INTENSITY | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE,
    CBC_Black        = 0,
};

// 设置颜色函数
void SetConsoleColor(ConsoleForegroundColor foreColor = CFC_White, ConsoleBackGroundColor backColor = CBC_Black)
{
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(handle, foreColor | backColor);
}

//调用函数
void ShowMessage(std::string msg, ConsoleForegroundColor foreColor = CFC_White, ConsoleBackGroundColor backColor = CBC_Black)
{
    SetConsoleColor(foreColor, backColor);
    std::cout << msg << std::endl;
    SetConsoleColor(CFC_White, CBC_Black);
}
// 主程序
int main(int argc, char** argv) 
{
    ShowMessage("Hello World QCJ.", CFC_Red, CBC_Purple);
    return 0;
}

以上。

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:12:28  更:2022-02-26 11:14:35 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:40:35-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码