当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > Linux下printf输出字符串的颜色

Linux下printf输出字符串的颜色 时间:2018-09-21      来源:未知

基本打印格式:

printf("\033[字背景颜色;字体颜色m字符串\033[0m" );

printf("\033[41;32m字体背景是红色,字是绿色\033[0m\n");

41是字背景颜色, 32是字体的颜色, 字体背景是红色,字是绿色是要输出的字符串. 后面的\033 ...\033[0m是配对的为控制码。

先来说一下颜色和背景的代码

颜色代码:

QUOTE:

字背景颜色范围: 40--49 字颜色: 30--39

40: 黑 30: 黑

41: 红 31: 红

42: 绿 32: 绿

43: 黄 33: 黄

44: 蓝 34: 蓝

45: 紫 35: 紫

46: 深绿 36: 深绿

47: 白色 37: 白色

注意到总体范围是从30到49,在printf("\033[41;32m字体背景是红色,字是绿色\033[0m\n");中\033[41;32m是可以单独只指定背景颜色或者字体颜色的,这样另外的部分就是默认状态如\033[32m 表示字体是绿色背景默认而\033[41m 表示背景为红色字体默认。

在“字体背景是红色,字是绿色”这一部分可以是要输出的字符串,也可以是格式控制串包含格式控制符如printf("\033[41;32m%2d\033[0m\n",a);则会输出int型的a,背景占2字符为红色,字体为绿色。

我们再说一下控制码,不同的控制码会产生不同的效果,这些属性可以写在后面,也可以加载前面如printf("\033[0m\033[41;32m%2d\n",a);也是可以的,不同在于是先打印再添加属性还是先添加属性再打印还是先打印再添加属性。当然一次也可以添加多个属性,总体原则是格式为:\33[ + 属性代码 随你喜好开心就好。

Linux下printf输出字符串的颜色

ANSI控制码:

QUOTE:

\033[0m 关闭所有属性这个关闭的属性是指的之前通过ANSI控制码获得的属性,这些属性得后遇到\033[0m会关闭。

\033[1m 设置高亮度 (光标过出均变为背景色)

\03[4m 下划线

\033[5m 闪烁

\033[7m 反显

\033[8m 消隐

\033[30m -- \033[37m 设置前景色

\033[40m -- \033[47m 设置背景色

\033[nA 光标上移n行

\03[nB 光标下移n行

\033[nC 光标右移n行

\033[nD 光标左移n行

\033[y;xH设置光标位置

\033[2J 清屏

\033[K 清除从光标到行尾的内容

\033[s 保存光标位置

\033[u 恢复光标位置

\033[?25l 隐藏光标

\33[?25h 显示光标

在说一下,其实这些属性信息中的相关数字也是可以通过变量的传入传进去的例如:

for (x = p_x + 36, y = p_y + 1; y <= 25; y++)

printf("\33[%d;%dH\33[41m==\33[0m", y, x);

这里光标的卫士就是通过变量传入的,==是打印内容,颜色也是这样,我们可以建立随机传入。这样, 在某些时候就可以实现动态的输出,或者打印一些图案。

上一篇:关于Linux内核中的异步IO的使用

下一篇:函数tmpnam和tmpfile的用法

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部