简述
在C语言中,控制打印颜色可以通过定义一些宏来实现,这需要利用VT100的控制符。例如,可以定义一些宏来控制前景色和背景色,如设置前景色为绿色,背景色为黑色,用的控制字符是 \033[32;40m [1][3]。
此外,也可以在命令行中使用 echo 命令,或者在C程序中使用 printf 函数来输出VT100的控制字符,从而实现颜色控制。例如,要设置字体颜色,可以使用 \033[32m 这样的控制符,总的来说,无论是使用宏定义还是直接输出控制字符,都可以很方便地在C语言中控制 printf 的打印颜色。
VT100控制码
\33[nA | 光标上移n行 |
\33[nB | 光标下移n行 |
\33[nC | 光标右移n行 |
\33[nD | 光标左移n行 |
\33[y;xH | 设置光标位置 |
\33[2J | 清屏 |
\33[K | 清除从光标到行尾的内容 |
\33[s | 保存光标位置 |
\33[u | 恢复光标位置 |
\33[?25l | 隐藏光标 |
\33[?25h | 显示光标 |
VT100数字型控制码
\33[0m | 关闭所有属性 |
\33[1m | 设置高亮度 |
\33[4m | 下划线 |
\33[5m | 闪烁 |
\33[7m | 反显 |
\33[8m | 消隐 |
\33[30m – \33[37m | 设置前景色 |
\33[40m – \33[47m | 设置背景色 |
颜色
VT100的颜色输出分为,注意要同时输出前景的字符颜色和背景颜色。
背景颜色范围:40----49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
前景字符颜色:30-----------39
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色
例子
printf("\33[背景色;字体色m 输出字符串 \33[0m\n" );
#include<stdio.h>
int main()
{
printf("-------背景颜色--------\n");
printf("\33[41mhello,world\33[0m\n" );
printf("\33[42mhello,world\33[0m\n" );
printf("\33[43mhello,world\33[0m\n" );
printf("\33[44mhello,world\33[0m\n" );
printf("\33[45mhello,world\33[0m\n" );
printf("\33[46mhello,world\33[0m\n" );
printf("\33[47mhello,world\33[0m\n" );
printf("-------字体颜色--------\n");
printf("\33[;37mhello,world\33[0m\n" );
printf("\33[;36mhello,world\33[0m\n" );
printf("\33[;35mhello,world\33[0m\n" );
printf("\33[;34mhello,world\33[0m\n" );
printf("\33[;33mhello,world\33[0m\n" );
printf("\33[;32mhello,world\33[0m\n" );
printf("\33[;31mhello,world\33[0m\n" );
printf("-------背景+字体颜色-------\n");
printf("\33[41;37mhello,world\33[0m\n" );
printf("\33[42;36mhello,world\33[0m\n" );
printf("\33[43;35mhello,world\33[0m\n" );
printf("\33[44;34mhello,world\33[0m\n" );
printf("\33[45;33mhello,world\33[0m\n" );
printf("\33[46;32mhello,world\33[0m\n" );
printf("\33[47;31mhello,world\33[0m\n" );
return 0;
}