除了Linux,在VS下也可以实现变色这一效果,先看下面的一段代码:
#include <stdio.h>
int main(int argc,char **argv)
{
printf("\033[44;37;5m hello world\033[0m\n");
return 0;
}
编译后运行上述代码,结果如下:
可见,此时输出的字体和背景已经有了颜色。
由上可知,在输出时候加上 “\033[ ; m …… \033[0m ” 即可使得输出的字体和背景是有颜色的。下面是颜色的定义:
字背景颜色范围:40 - 49
40:黑
41:深红
42:绿
43:黄色
44:蓝色
45:紫色
46:深绿
47:白色
字颜色:30 - 39
30:黑
31:红
32:绿
33:黄
34:蓝色
35:紫色
36:深绿
37:白色
下面看一下ANSI控制码的说明:
\33[0m 关闭所有属性
\33[1m 设置高亮度
\33[4m 下划线
\33[5m 闪烁
\33[7m 反显
\33[8m 消隐
\33[30m -- \33[37m 设置前景色
\33[40m -- \33[47m 设置背景色
\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 显示光标
最后再看一个实例:
#include <stdio.h>
int
main(int argc,char **argv)
{
printf("\033[31m The ......\n\033[0m");
printf("\033[2;7;1mHEOO.\n\033[2;7;0m");
printf("\033[41;36msomthe here\n\033[0m");
return 0;
}
运行结果为: