C/C++——printf彩色輸出


控制命令

我們常用的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,這個代碼的作用就是重置所有設置過的屬性,在開頭添加是為了防止其他的設置對自身有影響,而在結尾添加則是為了防止自身對其他地方的設置有影響。

然后中間的代碼如\033[1;31m%s則是設置為高亮節加紅色。我們來看一看效果如何:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM