标签:c linux terminal 终端 字符颜色
我们在编写程序的时候,通常需要终端对输出显示红色或者绿色等各种颜色,以便更加清楚的对用户做出提示。下面是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(白色)
示范源代码:
-
-
-
-
-
-
-
-
- #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);
- }
-
-
- int main()
- {
-
- set_term_color("hello,world\r\n", "1;31;44");
-
-
- set_term_default();
- printf("hello,world\r\n");
-
- return 0;
- }
/******************************************************************************
Copyright by Javacode007, All rights reserved!
Filename : setcolor.c
Author : Javacode007
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);
}
int main()
{
/* 设置终端字体显示为红色高亮,背景色为蓝色*/
set_term_color("hello,world\r\n", "1;31;44");
/* 恢复终端字体的系统默认显示*/
set_term_default();
printf("hello,world\r\n");
return 0;
}
输出效果如下:
Linux 终端字符颜色设置
标签:c linux terminal 终端 字符颜色
原文地址:http://blog.csdn.net/thomashtq/article/details/45036949