zoukankan      html  css  js  c++  java
  • Shell颜色封装(C++)

    #include <string>
    #include <stdarg.h>
    #include <sstream>
    #include <iostream>
     
    typedef enum ShellColor
    {
        //使用时先输出 "\033[" ,然后输出下面的枚举值,多个枚举值用分号隔开,最后输 出"m" 即可 
        SC_DEFAULT = 0,             //重新设置属性到缺省设置
        FONT_B = 1,                 //粗体
        FONT_HALF_LIGHT = 2,            //一半亮度
        FONT_U = 4,                 //下划线
        FONT_FLICKER = 5,               //闪烁
        SC_REVERSE = 7,             //将背景与字体颜色相换
        FONT_BLACK = 30,            //黑色字体
        FONT_RED = 31,          //红色字体
        FONT_GREEN = 32,            //绿色字体
        FONT_BROWN = 33,            //棕色字体
        FONT_BLUE = 34,         //蓝色字体
        FONT_PURPLE = 35,       //紫色字体
        FONT_BLUEST = 36,       //青色字体
        FONT_WHITE = 37,            //白色字体
        BG_BLACK = 40,          //黑色背景
        BG_RED = 41,                //红色背景
        BG_GREEN = 42,          //绿色背景
        BG_BROWN = 44,          //棕色背景
        BG_BLUE = 44,           //蓝色背景
        BG_PURPLE = 45,         //紫色背景
        BG_BLUEST = 46,         //青色背景
        BG_WHITE = 47,          //白色背景
    } SHELL_COLOR;
     
    //下面的方法使用可变参数
    std::string set_shell_color(int first,...)  
    {
        va_list  lt; 
        va_start(lt,first);
        const int flag = static_cast<int>(-1);
        std::string ret;
        std::stringstream ss; 
        ss<<"\033["<<first;
        int i;
        while((i = va_arg(lt,int)) != flag)
        {   
            ss<<";"<<i;
        }   
        va_end(lt);
        ss<<"m";
        ss>>ret;
        return ret;
    }
     
    //下面的方法使用 c++0X 特性。
    std::string set_shell_color_new(std::initializer_list<int> list)
    {
        std::string ret;
        std::stringstream ss; 
        ss<<"\033[";
        for(int i : list)
        {
            ss<<";"<<i;
        }
        ss<<"m";
        ss>>ret;
        return ret;
    }
     
    ///*
    int main()
    {
        std::cout<<set_shell_color(FONT_BLUEST,FONT_U,-1)<<"set_shell_color"<<std::endl;
        std::cout<<set_shell_color_new({FONT_PURPLE,FONT_B})<<"set_shell_color_new"<<set_shell_color_new({0})<<std::endl;
    }
    //*/
  • 相关阅读:
    MT【235】两道函数题
    MT【234】正方形染色(二)
    MT【233】染色正方形
    MT【232】展开式中的系数
    MT【231】棋子方法数
    MT【230】一道代数不等式
    MT【229】最小值函数
    MT【228】整数解的个数
    Python-list中的排序
    IO多路复用
  • 原文地址:https://www.cnblogs.com/tianyajuanke/p/3120652.html
Copyright © 2011-2022 走看看