在调试程序时,有时候要输出大量数据,如果让
printf/fprintf
改变输出数据的颜色,那观察数据就方便多了。
终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。
转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27, = 用八进制表示的 33)。
\033[显示方式;前景色;背景色m
显示方式: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(白色)
\033[0m 默认
\033[1;32;40m 绿色
033[1;31;40m 红色
printf( "\033[1;31;40m 输出红色字符 \033[0m" )
有时候为了实现在终端
输出
的时候
字体
能够带
颜色
,并且可以产生简单的闪烁的功能,特写了下列的代码
实现hello world的带
颜色
的
输出
,并且每过一秒产生一个闪烁的功能.
(注:具体还得判断终端类型)
CODE:
#include
#include
#include
#include
int flag = 0;
void sig_int(int signum)
在调试程序时,有时候要
输出
大量数据,如果让
printf
/
fprintf
改变
输出
数据的
颜色
,那观察数据就方便多了.
终端的字符
颜色
是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关.
转义序列是以 ESC 开头,可以用 \033 完成相同的工作(ESC 的 ASCII 码用十进制表示就是 27).
\033[显示方式;前景色;背景色m
显示方式: 0(默认
用于彩色和粗体命令窗口文本行的
MATLAB
fprintf
函数的前端。
FCWLINES格式化的命令窗口(CW)行
fprintf
的前端。
特征: -彩色多行文字-加粗的多行文字
去做: -超链接。
依存关系: -com.mathworks软件包(Mathworks已选择将其删除,以备将来使用。)
书写格式:
开头部分:\033[显示方式;前景色;背景色m + 结尾部分:\033[0m
注意:开头部分的三个参数:显示方式,前景色,背景色是可选参数,可以只写其中的某一个;另外由于表示三个参数不同含义的数值都是唯一的没有重复的,所以三个参数的书写先后顺序没有固定要求,系统都能识别;但是,建议按照默认的格式规范书写。
对于结尾部分,其实也可以省略,但是为了书写规范,建议\033[***开头,\033[0m结尾。
-------------------------------------------
在嵌入式开发,服务器开发中,经常用到
printf
,在项目比较大,或者打印信息比较多时,可以通过打印的字符串的
颜色
的不同来凸显重要信息。
一,
printf
打印出不同
颜色
printf
("\033[字背景
颜色
;
字体
颜色
m字符串\033[0m" );