Linux上使用設置printf顯示的顏色

我們經常看到別的屏幕五顏六色的很是羨慕,看着很炫是吧。其實我們也可以自己做一個簡單的修改,是我們的顯示結果也呈現出不同的顏色。shell腳本可能設置的比較多,但是我們平常使用C語言卻很少設置它的顏色,而實際上這個是可以設置的。
格式如下:

\033[字背景顏色;字體顏色m字符串\033[0m

舉個例子如下:(爲了方便,我自己特意定義了用於兩個調試的宏函數, 以後查看debug信息就方便很多了)

#include <stdio.h>

#define COL(x)  "\033[;" #x "m"
#define RED     COL(31)
#define GREEN   COL(32)
#define YELLOW  COL(33)
#define BLUE    COL(34)
#define MAGENTA COL(35)
#define CYAN    COL(36)
#define WHITE   COL(0)
#define GRAY    "\033[0m"

#define errlog(fmt, arg...) do{     \
    printf(RED"#ERROR: Toeny Sun:"GRAY YELLOW" %s:%d "fmt GRAY, __func__, __LINE__, ##arg);\
}while(0)

#define log(fmt, arg...) do{     \
    printf(BLUE"#DEBUG: Toeny Sun: "GRAY YELLOW"%s:%d "fmt GRAY, __func__, __LINE__, ##arg);\
}while(0)


void main(int argc, char **argv)
{
	char *string=NULL;
    struct in_addr ip;
    unsigned char *c=NULL;

    string = "192.168.1.2";
    if( inet_pton(AF_INET, string, &ip)!= 1){
        errlog("inet_pton error\n");
        return -1;
    }
    log("ip.s_addr = %8.8x\n", ntohl(ip.s_addr));

    string = "192.168.1.256";
    if( inet_pton(AF_INET, string, &ip)!= 1){
        errlog("inet_pton error\n");
        return -1;
    }
    log("ip.s_addr = %8.8x\n", ntohl(ip.s_addr));

}

結果如下所示:
在這裏插入圖片描述

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