printf打印顏色字符

以紅色在終端上打印出“Hello, world”,對應的代碼如下:


printf("\033[31m\033[1m"); // 開始以紅色打印
printf("Hello, world\n");
 
//要恢復默認顏色打印,只需要再打印如下一句:
printf("\033[0m");



從上面的例子可以看出printf("\033[31m\033[1m"); 和printf("\033[0m");是成對的。

你可以通過下面這段代碼,看看實際效果:
#include

int main() {
        fprintf(stdout, "\033[31m\033[1m");
        fprintf(stdout, "HEllo, world\n");
        fprintf(stdout, "\033[0m");
        fprintf(stdout, "END\n");
        return 0;
}


在學習LINUX網絡編程的時候我們做了一個聊天系統,當時爲了界面更漂亮點,於是在百度上搜索了下關於printf()函數的用法,和大家分享下:
                          給printf的輸出加上些特效比如顏色,可以讓打印信息更鮮明,在debug的時候特別有用。
                        顏色:
                        #define NONE         "\033[m"
                        #define RED          "\033[0;32;31m"
                        #define LIGHT_RED    "\033[1;31m"
                        #define GREEN        "\033[0;32;32m"
                        #define LIGHT_GREEN  "\033[1;32m"
                        #define BLUE         "\033[0;32;34m"
                        #define LIGHT_BLUE   "\033[1;34m"
                        #define DARY_GRAY    "\033[1;30m"
                        #define CYAN         "\033[0;36m"
                        #define LIGHT_CYAN   "\033[1;36m"
                        #define PURPLE       "\033[0;35m"
                        #define LIGHT_PURPLE "\033[1;35m"
                        #define BROWN        "\033[0;33m"
                        #define YELLOW       "\033[1;33m"
                        #define LIGHT_GRAY   "\033[0;37m"
                        #define WHITE        "\033[1;37m"
                        比如:
                        printf("\033[31m ####----->> \033[32m" "hello\n"
                        "\033[m");
                        顏色分爲背景色和字體色,30~39用來設置字體色,40~49設置背景:
                                背景色                        字體色
                                40: 黑                          30: 黑
                                41: 紅                          31: 紅
                                42: 綠                          32: 綠
                                43: 黃                          33: 黃
                                44: 藍                          34: 藍
                                45: 紫                          35: 紫
                                46: 深綠                      36: 深綠
                                47: 白色                      37: 白色
                        記得在打印完之後,把顏色恢復成NONE,不然再後面的打印都會跟着變色。
                        
                        另外,還可以加一些ANSI控制碼。加顏色只是以下控制碼中的一種:
                        \033[0m   關閉所有屬性  
                        \033[1m   設置高亮度  
                        \033[4m   下劃線  
                        \033[5m   閃爍  
                        \033[7m   反顯  
                        \033[8m   消隱  
                        \033[30m   --   \033[37m   設置前景色  
                        \033[40m   --   \033[47m   設置背景色  
                        \033[nA   光標上移n行  
                        \033[nB   光標下移n行  
                        \033[nC   光標右移n行  
                        \033[nD   光標左移n行  
                        \033[y;xH設置光標位置  
                        \033[2J   清屏  
                        \033[K   清除從光標到行尾的內容  
                        \033[s   保存光標位置  
                        \033[u   恢復光標位置  
                        \033[?25l   隱藏光標  
                        \033[?25h   顯示光標
                        printf( CYAN "current function is %s " GREEN " file line is %d\n" NONE,
                                    __FUNCTION__, __LINE__ );
                        fprintf(stderr, RED "current function is %s " BLUE " file line is %d\n" NONE,
                                    __FUNCTION__, __LINE__ );
                            return 0;

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