Пацаны спрашивают

    • LINUXTALKS-CO
      link
      fedilink
      arrow-up
      0
      ·
      4 years ago

      1

      #include <stdio.h>
      
      /*--------------Тут просто кишки----------------*/
      
      /*просто цвета*/
      #ifndef color_off
        #define cired()  "\x1B[31m"
        #define cigre()  "\x1B[32m"
        #define ciyel()  "\x1B[33m"
        #define ciaqu()  "\x1B[36m"
        #define cidef()  "\x1B[39m"
      #else
        #define cired()
        #define cigre()
        #define ciyel()
        #define ciaqu()
        #define cidef()
      #endif
      
      /*цвета + начертания - жирно*/
      #ifndef bold_off
        #define b_cired()  "\x1B[1;31m"
        #define b_cigre()  "\x1B[1;32m"
        #define b_ciyel()  "\x1B[1;33m"
        #define b_ciaqu()  "\x1B[1;36m"
        #define b_cidef()  "\x1B[1;39m"
        #define boldoff()  "\x1B[0m"
      #else
        #define b_cired()  cired()
        #define b_cigre()  cigre()
        #define b_ciyel()  ciyel()
        #define b_ciaqu()  ciaqu()
        #define b_cidef()  cidef()
      #endif
      
      /*цвета + начернтание - курсив*/
      #ifndef cur_off
        #define c_cired()  "\x1B[3;31m"
        #define c_cigre()  "\x1B[3;32m"
        #define c_ciyel()  "\x1B[3;33m"
        #define c_ciaqu()  "\x1B[3;36m"
        #define c_cidef()  "\x1B[3;39m"
        #define cursoff()  "\x1B[0m"
      #else
        #define c_cired()  cired()
        #define c_cigre()  cigre()
        #define c_ciyel()  ciyel()
        #define c_ciaqu()  ciaqu()
        #define c_cidef()  cidef()
      #endif
      
      /*---------------------тут API само-----------------------*/
      
      #define red(message) cired() message cidef()
      #define gre(message) cigre() message cidef()
      #define def(message) cidef() message cidef()
      #define yel(message) ciyel() message cidef()
      #define aqu(message) ciaqu() message cidef()
      
      #define b_red(message) b_cired() message cidef() boldoff() 
      #define b_gre(message) b_cigre() message cidef() boldoff() 
      #define b_def(message) b_cidef() message cidef() boldoff() 
      #define b_yel(message) b_ciyel() message cidef() boldoff() 
      #define b_aqu(message) b_ciaqu() message cidef() boldoff() 
      
      #define c_red(message) c_cired() message cidef() cursoff() 
      #define c_gre(message) c_cigre() message cidef() cursoff() 
      #define c_def(message) c_cidef() message cidef() cursoff() 
      #define c_yel(message) c_ciyel() message cidef() cursoff() 
      #define c_aqu(message) c_ciaqu() message cidef() cursoff()
      
      enum
      {
        RED     = 31,
        GREEN   = 32,
        YELLOW  = 33,
        BLUE    = 34,
        PURPULE = 35,
        AQUA    = 36,
        DEFAULT = 39,
      };
      static void colorset(int color)
      {
        printf("\x1B[%dm",color);
      }
      
      int main(int argc, char *argv[])
      {
          const char text[] = aqu("А я томат!");
      
          printf( b_red("Это ") gre("разноцветный ") c_yel("текст. %s\n"), text);
      
      
          printf("В этом "b_red("ЖИРНОМ")" царстве-государстве всё красное и "c_red("курсивное!")" иногда\n");
      
          printf(yel("А в этом всё" b_red(" не ") c_aqu("жёлтое") " и обычное!\n"));
      
          printf(c_gre("А ") b_gre("в ") c_aqu("остальных по обычному ")c_gre("!\n"));
          return 0;
      }
      
      

      Как добавить подчёркивания и прочее разберёшься сам. Там видно код 1 жирно код 3 курсив [0m сброс. Ну и покомпактнее можно сделать, но я накидал пример в лоб что-бы нагляднее было.