printf在终端输出时改变颜色

    xiaoxiao2021-12-14  20

    printf在终端输出时改变颜色

     

     

    在调试程序时,有时候要输出大量数据,如果让printf/fprintf改变输出数据的颜色,那观察数据就方便多了。

     

    终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。

    转义序列是以 ESC 开头,可以用 /033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, = 用八进制表示的33)。

     

    /033[显示方式;前景色;背景色m

     

    显示方式:0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、5(闪烁)、25(非闪烁)、7(反显)、27(非反显)

    前景色:30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)

    背景色:40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋红)、46(青色)、47(白色)

     

    /033[0m 默认

    /033[1;32;40m 绿色

    033[1;31;40m 红色

     

    printf( "/033[1;31;40m 输出红色字符 /033[0m" )

    在调试程序时,有时候要输出大量数据,如果颜色都一样的话,辨别起来就很恼火, 如果让printf/fprintf改变输出数据的颜色,那观察数据就方便多了。

    示例代码:

    #include <stdio.h> #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"

    int main() {     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; }

    本文来自博客,转载请标明出处:http://blog.csdn.net/dedodong/archive/2007/07/02/1675528.aspx

    转载请注明原文地址: https://ju.6miu.com/read-962465.html

    最新回复(0)