控制台\033方式设置字体颜色

控制台\033方式设置字体颜色

原创:丶无殇    2020-2-1


简介

这个字体颜色几乎可以在任何能在控制台或者终端输入语句的编程语言中使用,本文使用的是C语言演示的控制台。
在此,不介绍Windows程序控制台中使用Windows.h库中的setconsoletextattribute函数,仅介绍\033控制字符(ESC)的方法。该方法可以直接适用于printf()函数中。

其中,\033(八进制)即ESC符号,Windows中为\027(十进制),\x1b(十六进制)

不同编辑器控制台的颜色会不一样,比如Hbuilderx中的Node.js控制台的颜色,可以跳转最后查看。

格式

开始格式:

\033 [ 参数1 ; 参数2 ; 参数3 m   //以字母m结尾

内容格式:

正常的printf中的参数及内容

结束格式:

\033[0m   //结束一定要有结束标志

参数效果

总览

控制码效果
\033[0m关闭所有属性
\033[1m设置字体高亮度
\033[2m低亮(减弱)显示
\033[4m下划线
\033[5m闪烁
\033[7m反显
\033[8m消隐
\033[30m~\033[39m字体颜色
\033[40m~\033[49m背景颜色

单值控制码

不能与其他控制码联用

控制码效果
\033[nA光标上移n行
\033[nB光标下移n行
\033[nC光标右移n列
\033[nD光标左移n列
\033[y;xH设置光标位置(y行,x列)
\033[2J清屏
\033[K清除从光标到行尾的内容
\033[s保存光标位置
\033[u恢复光标位置
\033[?25l隐藏光标
\033[?25h显示光标

字体颜色

控制码字体效果
\033[30m黑色
\033[31m红色
\033[32m绿色
\033[33m黄色
\033[34m蓝色
\033[35m紫色
\033[36m浅蓝色
\033[37m白色
\033[38m
\033[39m

背景颜色

控制码背景效果
\033[40m黑色
\033[41m红色
\033[42m绿色
\033[43m黄色
\033[44m蓝色
\033[45m紫色
\033[46m浅蓝色
\033[47m白色
\033[48m
\033[49m

代码效果

C语言代码

#include <stdio.h>

int main()
{
	printf("以下是测试文字:\n");
	printf("\033[0m默认文字\033[0m\n");
	printf("\033[1m高亮文字\033[0m\n");
	printf("\033[2m低亮文字\033[0m\n");
	//printf("\033[3m无效文字\033[0m\n");
	printf("\033[4m下划线文字\033[0m\n");
	printf("\033[5m闪烁文字(无效)\033[0m\n");
	//printf("\033[6m无效文字\033[0m\n");
	printf("\033[7m反显文字\033[0m\n");
	printf("\033[8m消隐文字(无效)\033[0m\n");

	printf("\n\033[31;1m字体颜色\033[0m测试文字\n");
	printf("\033[30m低亮黑色文字\033[0m\t\033[30;1m高亮黑色文字\033[0m\n");
	printf("\033[31m低亮红色文字\033[0m\t\033[31;1m高亮红色文字\033[0m\n");
	printf("\033[32m低亮绿色文字\033[0m\t\033[32;1m高亮绿色文字\033[0m\n");
	printf("\033[33m低亮黄色文字\033[0m\t\033[33;1m高亮黄色文字\033[0m\n");
	printf("\033[34m低亮蓝色文字\033[0m\t\033[34;1m高亮蓝色文字\033[0m\n");
	printf("\033[35m低亮紫色文字\033[0m\t\033[35;1m高亮紫色文字\033[0m\n");
	printf("\033[36m低亮浅蓝文字\033[0m\t\033[36;1m高亮浅蓝文字\033[0m\n");
	printf("\033[37m低亮白色文字\033[0m\t\033[37;1m高亮白色文字\033[0m\n");
	//printf("\033[38m测试文字\033[0m\n");
	//printf("\033[39m测试文字\033[0m\n");

	printf("\n\033[31;1m背景颜色\033[0m测试文字\n");
	printf("\033[40m低亮文字黑色背景\033[0m\t\033[40;1m高亮文字黑色背景\033[0m\n");
	printf("\033[41m低亮文字红色背景\033[0m\t\033[41;1m高亮文字红色背景\033[0m\n");
	printf("\033[42m低亮文字绿色背景\033[0m\t\033[42;1m高亮文字绿色背景\033[0m\n");
	printf("\033[43m低亮文字黄色背景\033[0m\t\033[43;1m高亮文字黄色背景\033[0m\n");
	printf("\033[44m低亮文字蓝色背景\033[0m\t\033[44;1m高亮文字蓝色背景\033[0m\n");
	printf("\033[45m低亮文字紫色背景\033[0m\t\033[45;1m高亮文字紫色背景\033[0m\n");
	printf("\033[46m低亮文字浅蓝背景\033[0m\t\033[46;1m高亮文字浅蓝背景\033[0m\n");
	printf("\033[47m低亮文字白色背景\033[0m\t\033[47;1m高亮文字白色背景\033[0m\n");
	//printf("\033[48m测试文字\033[0m\n");
	//printf("\033[49m测试文字\033[0m\n");

	return 0;
}

运行效果:
运行效果展示

Node.js中的效果

代码:

// 测试控制台样色
function test() {
  console.log(`\x1b[30m 测试代码30 \x1b[0m`,`\x1b[30;1m 测试代码30;1 \x1b[0m`,`\x1b[30;2m 测试代码30;2 \x1b[0m`,`\x1b[30;3m 测试代码30;3 \x1b[0m`,`\x1b[30;4m 测试代码30;4 \x1b[0m`,`\x1b[30;5m 测试代码30;5 \x1b[0m`,`\x1b[30;6m 测试代码30;6 \x1b[0m`,`\x1b[30;7m 测试代码30;7 \x1b[0m`,`\x1b[30;8m 测试代码30;8 \x1b[0m`,`\x1b[30;9m 测试代码30;9 \x1b[0m`);
  console.log(`\x1b[31m 测试代码31 \x1b[0m`,`\x1b[31;1m 测试代码31;1 \x1b[0m`,`\x1b[31;2m 测试代码31;2 \x1b[0m`,`\x1b[31;3m 测试代码31;3 \x1b[0m`,`\x1b[31;4m 测试代码31;4 \x1b[0m`,`\x1b[31;5m 测试代码31;5 \x1b[0m`,`\x1b[31;6m 测试代码31;6 \x1b[0m`,`\x1b[31;7m 测试代码31;7 \x1b[0m`,`\x1b[31;8m 测试代码31;8 \x1b[0m`,`\x1b[31;9m 测试代码31;9 \x1b[0m`);
  console.log(`\x1b[32m 测试代码32 \x1b[0m`,`\x1b[32;1m 测试代码32;1 \x1b[0m`,`\x1b[32;2m 测试代码32;2 \x1b[0m`,`\x1b[32;3m 测试代码32;3 \x1b[0m`,`\x1b[32;4m 测试代码32;4 \x1b[0m`,`\x1b[32;5m 测试代码32;5 \x1b[0m`,`\x1b[32;6m 测试代码32;6 \x1b[0m`,`\x1b[32;7m 测试代码32;7 \x1b[0m`,`\x1b[32;8m 测试代码32;8 \x1b[0m`,`\x1b[32;9m 测试代码32;9 \x1b[0m`);
  console.log(`\x1b[33m 测试代码33 \x1b[0m`,`\x1b[33;1m 测试代码33;1 \x1b[0m`,`\x1b[33;2m 测试代码33;2 \x1b[0m`,`\x1b[33;3m 测试代码33;3 \x1b[0m`,`\x1b[33;4m 测试代码33;4 \x1b[0m`,`\x1b[33;5m 测试代码33;5 \x1b[0m`,`\x1b[33;6m 测试代码33;6 \x1b[0m`,`\x1b[33;7m 测试代码33;7 \x1b[0m`,`\x1b[33;8m 测试代码33;8 \x1b[0m`,`\x1b[33;9m 测试代码33;9 \x1b[0m`);
  console.log(`\x1b[34m 测试代码34 \x1b[0m`,`\x1b[34;1m 测试代码34;1 \x1b[0m`,`\x1b[34;2m 测试代码34;2 \x1b[0m`,`\x1b[34;3m 测试代码34;3 \x1b[0m`,`\x1b[34;4m 测试代码34;4 \x1b[0m`,`\x1b[34;5m 测试代码34;5 \x1b[0m`,`\x1b[34;6m 测试代码34;6 \x1b[0m`,`\x1b[34;7m 测试代码34;7 \x1b[0m`,`\x1b[34;8m 测试代码34;8 \x1b[0m`,`\x1b[34;9m 测试代码34;9 \x1b[0m`);
  console.log(`\x1b[35m 测试代码35 \x1b[0m`,`\x1b[35;1m 测试代码35;1 \x1b[0m`,`\x1b[35;2m 测试代码35;2 \x1b[0m`,`\x1b[35;3m 测试代码35;3 \x1b[0m`,`\x1b[35;4m 测试代码35;4 \x1b[0m`,`\x1b[35;5m 测试代码35;5 \x1b[0m`,`\x1b[35;6m 测试代码35;6 \x1b[0m`,`\x1b[35;7m 测试代码35;7 \x1b[0m`,`\x1b[35;8m 测试代码35;8 \x1b[0m`,`\x1b[35;9m 测试代码35;9 \x1b[0m`);
  console.log(`\x1b[36m 测试代码36 \x1b[0m`,`\x1b[36;1m 测试代码36;1 \x1b[0m`,`\x1b[36;2m 测试代码36;2 \x1b[0m`,`\x1b[36;3m 测试代码36;3 \x1b[0m`,`\x1b[36;4m 测试代码36;4 \x1b[0m`,`\x1b[36;5m 测试代码36;5 \x1b[0m`,`\x1b[36;6m 测试代码36;6 \x1b[0m`,`\x1b[36;7m 测试代码36;7 \x1b[0m`,`\x1b[36;8m 测试代码36;8 \x1b[0m`,`\x1b[36;9m 测试代码36;9 \x1b[0m`);
  console.log(`\x1b[37m 测试代码37 \x1b[0m`,`\x1b[37;1m 测试代码37;1 \x1b[0m`,`\x1b[37;2m 测试代码37;2 \x1b[0m`,`\x1b[37;3m 测试代码37;3 \x1b[0m`,`\x1b[37;4m 测试代码37;4 \x1b[0m`,`\x1b[37;5m 测试代码37;5 \x1b[0m`,`\x1b[37;6m 测试代码37;6 \x1b[0m`,`\x1b[37;7m 测试代码37;7 \x1b[0m`,`\x1b[37;8m 测试代码37;8 \x1b[0m`,`\x1b[37;9m 测试代码37;9 \x1b[0m`);
  console.log(`\x1b[38m 测试代码38 \x1b[0m`,`\x1b[38;1m 测试代码38;1 \x1b[0m`,`\x1b[38;2m 测试代码38;2 \x1b[0m`,`\x1b[38;3m 测试代码38;3 \x1b[0m`,`\x1b[38;4m 测试代码38;4 \x1b[0m`,`\x1b[38;5m 测试代码38;5 \x1b[0m`,`\x1b[38;6m 测试代码38;6 \x1b[0m`,`\x1b[38;7m 测试代码38;7 \x1b[0m`,`\x1b[38;8m 测试代码38;8 \x1b[0m`,`\x1b[38;9m 测试代码38;9 \x1b[0m`);
  console.log(`\x1b[39m 测试代码39 \x1b[0m`,`\x1b[39;1m 测试代码39;1 \x1b[0m`,`\x1b[39;2m 测试代码39;2 \x1b[0m`,`\x1b[39;3m 测试代码39;3 \x1b[0m`,`\x1b[39;4m 测试代码39;4 \x1b[0m`,`\x1b[39;5m 测试代码39;5 \x1b[0m`,`\x1b[39;6m 测试代码39;6 \x1b[0m`,`\x1b[39;7m 测试代码39;7 \x1b[0m`,`\x1b[39;8m 测试代码39;8 \x1b[0m`,`\x1b[39;9m 测试代码39;9 \x1b[0m`);
  
  console.log(`\x1b[40m 测试代码40 \x1b[0m`,`\x1b[40;1m 测试代码40;1 \x1b[0m`,`\x1b[40;2m 测试代码40;2 \x1b[0m`,`\x1b[40;3m 测试代码40;3 \x1b[0m`,`\x1b[40;4m 测试代码40;4 \x1b[0m`,`\x1b[40;5m 测试代码40;5 \x1b[0m`,`\x1b[40;6m 测试代码40;6 \x1b[0m`,`\x1b[40;7m 测试代码40;7 \x1b[0m`,`\x1b[40;8m 测试代码40;8 \x1b[0m`,`\x1b[40;9m 测试代码40;9 \x1b[0m`);
  console.log(`\x1b[41m 测试代码41 \x1b[0m`,`\x1b[41;1m 测试代码41;1 \x1b[0m`,`\x1b[41;2m 测试代码41;2 \x1b[0m`,`\x1b[41;3m 测试代码41;3 \x1b[0m`,`\x1b[41;4m 测试代码41;4 \x1b[0m`,`\x1b[41;5m 测试代码41;5 \x1b[0m`,`\x1b[41;6m 测试代码41;6 \x1b[0m`,`\x1b[41;7m 测试代码41;7 \x1b[0m`,`\x1b[41;8m 测试代码41;8 \x1b[0m`,`\x1b[41;9m 测试代码41;9 \x1b[0m`);
  console.log(`\x1b[42m 测试代码42 \x1b[0m`,`\x1b[42;1m 测试代码42;1 \x1b[0m`,`\x1b[42;2m 测试代码42;2 \x1b[0m`,`\x1b[42;3m 测试代码42;3 \x1b[0m`,`\x1b[42;4m 测试代码42;4 \x1b[0m`,`\x1b[42;5m 测试代码42;5 \x1b[0m`,`\x1b[42;6m 测试代码42;6 \x1b[0m`,`\x1b[42;7m 测试代码42;7 \x1b[0m`,`\x1b[42;8m 测试代码42;8 \x1b[0m`,`\x1b[42;9m 测试代码42;9 \x1b[0m`);
  console.log(`\x1b[43m 测试代码43 \x1b[0m`,`\x1b[43;1m 测试代码43;1 \x1b[0m`,`\x1b[43;2m 测试代码43;2 \x1b[0m`,`\x1b[43;3m 测试代码43;3 \x1b[0m`,`\x1b[43;4m 测试代码43;4 \x1b[0m`,`\x1b[43;5m 测试代码43;5 \x1b[0m`,`\x1b[43;6m 测试代码43;6 \x1b[0m`,`\x1b[43;7m 测试代码43;7 \x1b[0m`,`\x1b[43;8m 测试代码43;8 \x1b[0m`,`\x1b[43;9m 测试代码43;9 \x1b[0m`);
  console.log(`\x1b[44m 测试代码44 \x1b[0m`,`\x1b[44;1m 测试代码44;1 \x1b[0m`,`\x1b[44;2m 测试代码44;2 \x1b[0m`,`\x1b[44;3m 测试代码44;3 \x1b[0m`,`\x1b[44;4m 测试代码44;4 \x1b[0m`,`\x1b[44;5m 测试代码44;5 \x1b[0m`,`\x1b[44;6m 测试代码44;6 \x1b[0m`,`\x1b[44;7m 测试代码44;7 \x1b[0m`,`\x1b[44;8m 测试代码44;8 \x1b[0m`,`\x1b[44;9m 测试代码44;9 \x1b[0m`);
  console.log(`\x1b[45m 测试代码45 \x1b[0m`,`\x1b[45;1m 测试代码45;1 \x1b[0m`,`\x1b[45;2m 测试代码45;2 \x1b[0m`,`\x1b[45;3m 测试代码45;3 \x1b[0m`,`\x1b[45;4m 测试代码45;4 \x1b[0m`,`\x1b[45;5m 测试代码45;5 \x1b[0m`,`\x1b[45;6m 测试代码45;6 \x1b[0m`,`\x1b[45;7m 测试代码45;7 \x1b[0m`,`\x1b[45;8m 测试代码45;8 \x1b[0m`,`\x1b[45;9m 测试代码45;9 \x1b[0m`);
  console.log(`\x1b[46m 测试代码46 \x1b[0m`,`\x1b[46;1m 测试代码46;1 \x1b[0m`,`\x1b[46;2m 测试代码46;2 \x1b[0m`,`\x1b[46;3m 测试代码46;3 \x1b[0m`,`\x1b[46;4m 测试代码46;4 \x1b[0m`,`\x1b[46;5m 测试代码46;5 \x1b[0m`,`\x1b[46;6m 测试代码46;6 \x1b[0m`,`\x1b[46;7m 测试代码46;7 \x1b[0m`,`\x1b[46;8m 测试代码46;8 \x1b[0m`,`\x1b[46;9m 测试代码46;9 \x1b[0m`);
  console.log(`\x1b[47m 测试代码47 \x1b[0m`,`\x1b[47;1m 测试代码47;1 \x1b[0m`,`\x1b[47;2m 测试代码47;2 \x1b[0m`,`\x1b[47;3m 测试代码47;3 \x1b[0m`,`\x1b[47;4m 测试代码47;4 \x1b[0m`,`\x1b[47;5m 测试代码47;5 \x1b[0m`,`\x1b[47;6m 测试代码47;6 \x1b[0m`,`\x1b[47;7m 测试代码47;7 \x1b[0m`,`\x1b[47;8m 测试代码47;8 \x1b[0m`,`\x1b[47;9m 测试代码47;9 \x1b[0m`);
  console.log(`\x1b[48m 测试代码48 \x1b[0m`,`\x1b[48;1m 测试代码48;1 \x1b[0m`,`\x1b[48;2m 测试代码48;2 \x1b[0m`,`\x1b[48;3m 测试代码48;3 \x1b[0m`,`\x1b[48;4m 测试代码48;4 \x1b[0m`,`\x1b[48;5m 测试代码48;5 \x1b[0m`,`\x1b[48;6m 测试代码48;6 \x1b[0m`,`\x1b[48;7m 测试代码48;7 \x1b[0m`,`\x1b[48;8m 测试代码48;8 \x1b[0m`,`\x1b[48;9m 测试代码48;9 \x1b[0m`);
  console.log(`\x1b[49m 测试代码49 \x1b[0m`,`\x1b[49;1m 测试代码49;1 \x1b[0m`,`\x1b[49;2m 测试代码49;2 \x1b[0m`,`\x1b[49;3m 测试代码49;3 \x1b[0m`,`\x1b[49;4m 测试代码49;4 \x1b[0m`,`\x1b[49;5m 测试代码49;5 \x1b[0m`,`\x1b[49;6m 测试代码49;6 \x1b[0m`,`\x1b[49;7m 测试代码49;7 \x1b[0m`,`\x1b[49;8m 测试代码49;8 \x1b[0m`,`\x1b[49;9m 测试代码49;9 \x1b[0m`);
}

效果:
在这里插入图片描述


  • 37
    点赞
  • 159
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值