• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Shell颜色封装(C++)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
#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;
}
//*/

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C语言中数据类型和变量发布时间:2022-07-14
下一篇:
C#一个完整的Log4net使用实例发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap