【发布时间】:2009-12-25 14:02:23
【问题描述】:
linux gcc 4.4.1
我有以下 fprintf 语句,我希望 OK 为绿色,FAILED 为红色。这可能吗?
if(devh == -1)
{
fprintf(stderr, "Device [ FAILED ]\n");
}
else
{
fprintf(stderr, "Device [ OK ]\n");
}
非常感谢您的任何建议,
【问题讨论】:
标签: c
linux gcc 4.4.1
我有以下 fprintf 语句,我希望 OK 为绿色,FAILED 为红色。这可能吗?
if(devh == -1)
{
fprintf(stderr, "Device [ FAILED ]\n");
}
else
{
fprintf(stderr, "Device [ OK ]\n");
}
非常感谢您的任何建议,
【问题讨论】:
标签: c
我使用以下宏来为终端输出添加颜色。
#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 */
...并使用类似
printf( GREEN "Here is some text\n" RESET );
使用示例Colored grep?
你的例子
if(devh == -1)
{
fprintf(stderr, "Device [ " RED "FAILED" RESET " ]\n");
}
else
{
fprintf(stderr, "Device [ " GREEN "OK" RESET " ]\n");
}
【讨论】:
您可能应该使用诸如 ncurses 之类的库来处理终端。
或者,在 Linux 下,您可以使用一些控制台转义序列,例如:
printf ("\033[32;1m OK \033[0m\n");
(在本例中,32 代表绿色),但它既不便携也不优雅。
【讨论】: