2009-12-25 48 views

回答

24

你或許應該使用一些庫如的ncurses處理終端。

另外,在Linux下,你可以使用一些控制檯轉義序列,如:

printf ("\033[32;1m OK \033[0m\n"); 

(在這種情況下,32個代表綠色),但它既不便攜也不優雅。

+0

肯定更好用的庫 - 硬連線終端轉義序列被不好,和它相關的問題是爲什麼詛咒圖書館被髮明的原因(或是原因的很大一部分)。 – 2009-12-25 20:29:29

63

我用來使用下面的宏爲終端輸出添加顏色。

#define RESET "\033[0m" 
#define BLACK "\033[30m"  /* Black */ 
#define RED  "\033[31m"  /* Red */ 
#define GREEN "\033[32m"  /* Green */ 
#define YELLOW "\033[33m"  /* Yellow */ 
#define BLUE "\033[34m"  /* Blue */ 
#define MAGENTA "\033[35m"  /* Magenta */ 
#define CYAN "\033[36m"  /* Cyan */ 
#define WHITE "\033[37m"  /* White */ 
#define BOLDBLACK "\033[1m\033[30m"  /* Bold Black */ 
#define BOLDRED  "\033[1m\033[31m"  /* Bold Red */ 
#define BOLDGREEN "\033[1m\033[32m"  /* Bold Green */ 
#define BOLDYELLOW "\033[1m\033[33m"  /* Bold Yellow */ 
#define BOLDBLUE "\033[1m\033[34m"  /* Bold Blue */ 
#define BOLDMAGENTA "\033[1m\033[35m"  /* Bold Magenta */ 
#define BOLDCYAN "\033[1m\033[36m"  /* Bold Cyan */ 
#define BOLDWHITE "\033[1m\033[37m"  /* Bold White */ 

...並使用像使用Colored grep?

printf(GREEN "Here is some text\n" RESET); 

例子,你比如

if(devh == -1) 
{ 
    fprintf(stderr, "Device [ " RED "FAILED" RESET " ]\n"); 
} 
else 
{ 
    fprintf(stderr, "Device [ " GREEN "OK" RESET " ]\n"); 
} 
+2

謝謝你的傑出答案 – kapil 2015-09-20 17:19:18

相關問題