原文章: https://www.cnblogs.com/lewki/p/14343894.html

控制命令

我们常用的printf函数输出来的颜色是终端的配色。如果想要输出不同的颜色进行区分,就需要用到printf的控制命令:\033[m。

控制命令以\033[开头,以m结尾,而中间则是属性码,属性代码之间使用;分隔,如\033[1;34;42m。而属性代码的含义见下面的表格。

printf属性代码

这里列举了三类属性代码,当然这只是一部分。

通用格式控制

属性代码功能
0重置所有属性
1高亮/加粗
2暗淡
4下划线
5闪烁
7反转
8隐藏

前景色

属性代码颜色
30黑色
31红色
32绿色
33黄色
34蓝色
35品红
36青色

背景色

属性代码颜色
40黑色
41红色
42绿色
43黄色
44蓝色
45品红
46青色

举例

#include <cstdio>

void printf_red(const char *s)
{
    printf("\033[0m\033[1;31m%s\033[0m", s);
}

void printf_green(const char *s)
{
    printf("\033[0m\033[1;32m%s\033[0m", s);
}

void printf_yellow(const char *s)
{
    printf("\033[0m\033[1;33m%s\033[0m", s);
}

void printf_blue(const char *s)
{
    printf("\033[0m\033[1;34m%s\033[0m", s);
}

void printf_pink(const char *s)
{
    printf("\033[0m\033[1;35m%s\033[0m", s);
}

void printf_cyan(const char *s)
{
    printf("\033[0m\033[1;36m%s\033[0m", s);
}

int main()
{
    printf_red("Hello World.\n");
    printf_green("Hello World.\n");
    printf_yellow("Hello World.\n");
    printf_blue("Hello World.\n");
    printf_pink("Hello World.\n");
    printf_cyan("Hello World.\n");
    return 0;
}

上面的代码中,每个函数都对应输出一种颜色的字符串,这里只用了高亮加前景色,没有设置背景色。我们看到printf中的字符串开头和结尾均是\033[0m,这个代码的作用就是重置所有设置过的属性,在开头添加是为了防止其他的设置对自身有影响,而在结尾添加则是为了防止自身对其他地方的设置有影响。

此作者没有提供个人介绍。
最后更新于 2025-10-11