Linux 終端字符顏色設置

引言

我們在編寫程序的時候,通常需要終端對輸出顯示紅色或者綠色等各種顏色,以便更加清楚的對用戶做出提示。下面是Linux系統終端顏色的設置方式:

終端的字符顏色是用轉義序列控制的,是文本模式下的系統顯示功能,和具體的語言無關,shell,python,perl, C, C++等均可以調用。
轉義序列是以 ESC 開頭,可以用 \033 完成相同的工作(ESC 的 ASCII 碼用十進制表示就是 27, 等價於用八進制表示的 33)。

顯示格式:    \033[顯示方式;前景色;背景色m
其中顯示方式,前景色或背景色無順序關係,其中任何一項也不是必須的。
系統默認顏色:\033[0m

顯示方式:0(默認)、1(高亮)、22(非粗體)、4(下劃線)、24(非下劃線)、5(閃爍)、25(非閃爍)、7(反顯)、27(非反顯)

前景色:30(黑色)、31(紅色)、32(綠色)、 33(黃色)、34(藍色)、35(洋紅)、36(青色)、37(白色)

背景色:40(黑色)、41(紅色)、42(綠色)、 43(黃色)、44(藍色)、45(洋紅)、46(青色)、47(白色)

 

示範源代碼:

/****************************************************************************** 
Copyright by Thomas Hu, All rights reserved! 
Filename    : setcolor.c 
Author      : Thomas Hu 
Date        : 2012-8-5 
Version     : 1.0 
Description : 設置Linux終端字符顏色 
******************************************************************************/  
#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
  
/* 設置終端爲系統默認顯示 */  
void set_term_default()  
{  
    fprintf(stdout, "\033[0m");  
    fflush(stdout);  
}  
  
/* 設置終端顯示方式*/  
void set_term_color(const char* msg, const char* fmt)  
{  
    char *pfmt = NULL;  
    pfmt = (char*)malloc(sizeof(fmt) + sizeof("\033[m"));  
      
    if(NULL == pfmt)  
    {  
        printf("Malloc error! File:%s, Line:%d\r\n", __FILE__, __LINE__);  
        return;  
    }  
    strcat(pfmt, "\033[");  
    strcat(pfmt, fmt);  
    strcat(pfmt, "m");  
      
    printf("Set Terminal Color to: \\033[%sm\r\n", fmt);  
    fprintf(stdout, pfmt);  
    printf(msg);  
    fflush(stdout);  
      
    free(pfmt);  
} 

輸出效果如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章