控制台\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`);
}
效果: