linux终端字体颜色_使用printf打印出各种颜色字体

  • 我的博客:https://blog.csdn.net/qq_37388044
  • 我的知乎:https://www.zhihu.com/people/bbtganmin
  • 联系方式:知乎私信

转载或者引用本文内容请注明来源及原作者!



前言

  日常开发中,我们会遇到各种各样的库。在移植库的过程中,我们会发现有些库的打印是有颜色的,这是怎么实现的呢?


一、linux终端控制描述

Linux控制台实现了VT102和ECMA-48/ISO 6429/ANSI X3.64终端控制的子集,这个子集很庞大,当然还有Linux自己私有的控制序列,以改变颜色配置,字符集映像,等等。


二、用法

1、格式

固定格式:“\033[”开头,“m”结尾,中间数字代表相应格式,如下:

printf("\033[1mHello wold! \033[0m\n"); 
  • “\033”代表 ESC字符。ESC的ASCII码是十进制27,八进制033。
  • ECMA-48中,“1”表示高亮显示,“0”表示默认。
  • 上面语句中,“\033[1m”表示后面的字符格式改为高亮显示,“\033[0m”表示后面的字符恢复默认格式。所有,上面的语句打印出来“Hello wold!”会高亮显示。

2、同时设置多种格式

固定格式:“\033[”开头,“m”结尾,不同格式用“;”号隔开,如下:

printf("\033[1;31;42mHello wold! \033[0m\n"); 
  • “31”表示字体红色,“42”表示背景绿色。
  • 上面语句中,打印出来“Hello wold!”会高亮显示、红色字体、绿色背景。

三、ECMA-48 SGR 序列

ESC [ < parameters > m 设置显示属性. 同样的序列可以设置一个或多个属性.

paramresult
0所有属性重设为默认值
1设置边框
4设置下划线
5设置闪烁
7反显
24关闭下划线
25关闭闪烁
27关闭反显
30黑色字体
31红色字体
32绿色字体
33棕色字体
34蓝色字体
35品红字体
36孔雀蓝字体
37白色字体
38打开下划线,设置默认字体颜色
39关闭下划线,设置默认字体颜色
40黑色背景
41红色背景
42绿色背景
43棕色背景
44蓝色背景
45品红背景
46孔雀蓝背景
47白色背景
49设置默认背景色

四、官方说明

linux系统下输入:

man console_codes

可查看详细说明。


五、测试程序

#include <stdio.h>

int main(int argc, char const *argv[])
{
	for (int i = 0; i < 50; ++i)
	{
		printf("\033[%dmHello wold!(%d)\033[0m\n", i, i);
	}

	return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值