閱讀775 返回首頁    go 阿裏雲 go 技術社區[雲棲]


LINUX下printf輸出字體的特效

在學習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;

最後更新:2017-04-03 12:55:07

  上一篇:go 再回首2013
  下一篇:go openstack 命令行管理四 - 資源管理 (備忘)