Linux 终端字符颜色设置

引言

我们在编写程序的时候,通常需要终端对输出显示红色或者绿色等各种颜色,以便更加清楚的对用户做出提示。下面是Linux系统终端颜色的设置方式:

终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关,shell,python,perl, C, C++等均可以调用。
转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, 等价于用八进制表示的 33)。

显示格式:    \033[显示方式;前景色;背景色m
其中显示方式,前景色或背景色无顺序关系,其中任何一项也不是必须的。
系统默认颜色:\033[0m

显示方式: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(白色)

 

示范源代码:

/****************************************************************************** 
Copyright by Thomas Hu, All rights reserved! 
Filename    : setcolor.c 
Author      : Thomas Hu 
Date        : 2012-8-5 
Version     : 1.0 
Description : 设置Linux终端字符颜色 
******************************************************************************/  
#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
  
/* 设置终端为系统默认显示 */  
void set_term_default()  
{  
    fprintf(stdout, "\033[0m");  
    fflush(stdout);  
}  
  
/* 设置终端显示方式*/  
void set_term_color(const char* msg, const char* fmt)  
{  
    char *pfmt = NULL;  
    pfmt = (char*)malloc(sizeof(fmt) + sizeof("\033[m"));  
      
    if(NULL == pfmt)  
    {  
        printf("Malloc error! File:%s, Line:%d\r\n", __FILE__, __LINE__);  
        return;  
    }  
    strcat(pfmt, "\033[");  
    strcat(pfmt, fmt);  
    strcat(pfmt, "m");  
      
    printf("Set Terminal Color to: \\033[%sm\r\n", fmt);  
    fprintf(stdout, pfmt);  
    printf(msg);  
    fflush(stdout);  
      
    free(pfmt);  
} 

输出效果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值