Linux下printf输出字符串的颜色

基本打印格式:

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[ + 属性代码 随你喜好开心就好。

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);

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

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。(点击找小助理领取)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值