Linux 終端字元顏色設定

來源:互聯網
上載者:User

標籤:c   linux   terminal   終端   字元顏色   

我們在編寫程式的時候,通常需要終端對輸出顯示紅色或者綠色等各種顏色,以便更加清楚的對使用者做出提示。下面是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(白色)

 

示範原始碼:

[cpp] view plaincopyprint?
  1. /****************************************************************************** 
  2. Copyright by Javacode007, All rights reserved! 
  3. Filename    : setcolor.c 
  4. Author      : Javacode007 
  5. Date        : 2012-8-5 
  6. Version     : 1.0 
  7. Description : 設定Linux終端字元顏色 
  8. ******************************************************************************/  
  9. #include <stdio.h>  
  10. #include <stdlib.h>  
  11. #include <string.h>  
  12.   
  13. /* 設定終端為系統預設顯示 */  
  14. void set_term_default()  
  15. {  
  16.     fprintf(stdout, "\033[0m");  
  17.     fflush(stdout);  
  18. }  
  19.   
  20. /* 設定終端顯示方式*/  
  21. void set_term_color(const char* msg, const char* fmt)  
  22. {  
  23.     char *pfmt = NULL;  
  24.     pfmt = (char*)malloc(sizeof(fmt) + sizeof("\033[m"));  
  25.       
  26.     if(NULL == pfmt)  
  27.     {  
  28.         printf("Malloc error! File:%s, Line:%d\r\n", __FILE__, __LINE__);  
  29.         return;  
  30.     }  
  31.     strcat(pfmt, "\033[");  
  32.     strcat(pfmt, fmt);  
  33.     strcat(pfmt, "m");  
  34.       
  35.     printf("Set Terminal Color to: \\033[%sm\r\n", fmt);  
  36.     fprintf(stdout, pfmt);  
  37.     printf(msg);  
  38.     fflush(stdout);  
  39.       
  40.     free(pfmt);  
  41. }  
  42.   
  43.   
  44. int main()  
  45. {  
  46.     /* 設定終端字型顯示為紅色高亮,背景色為藍色*/  
  47.     set_term_color("hello,world\r\n", "1;31;44");  
  48.   
  49.     /* 恢複終端字型的系統預設顯示*/  
  50.     set_term_default();  
  51.     printf("hello,world\r\n");  
  52.   
  53.     return 0;  
  54. }  
/******************************************************************************Copyright by Javacode007, All rights reserved!Filename    : setcolor.cAuthor      : Javacode007Date        : 2012-8-5Version     : 1.0Description : 設定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);}int main(){    /* 設定終端字型顯示為紅色高亮,背景色為藍色*/    set_term_color("hello,world\r\n", "1;31;44");    /* 恢複終端字型的系統預設顯示*/    set_term_default();    printf("hello,world\r\n");    return 0;}

 


輸出效果如下:

Linux 終端字元顏色設定

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.