使用转义字符来改变字体颜色,这些转义字符都是一些特殊的字符,不是程序中用到的空格/ 换行之类的符号
"\033[ xm \033[xm" 分别表示句子始末字体的颜色
字体色:30 --- 39 字体背景色:40 -- 49
\033[30m 黑色 \033[ 40m
\033[31m 红色 \033[ 41m
\033[32m 绿色 \033[ 42m
\033[33m 黄色 \033[ 43m
\033[34m 蓝色 \033[ 44m
\033[35m 紫色 \033[ 45m
\033[36m 深绿 \033[ 46m
\033[37m 灰白 \033[ 47m
\033[38m 白色 \033 [ 48 m\033[39m 亮白 \033 [ 49 m
其他控制:
\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[7m 反显
\033[8m 消隐
*/
这些主要用在程序输出语句中,使用这些来修改输出字体的颜色,针对的是linnux下的终端,本人没有在其他运行环境下测试,下面把测试的代码写进来。
#include <iostream>
using namespace std;
int main()
{
cout << "\033[30m 1 first line" << endl; //black
cout << "\033[31m 2 second line " << endl; // red
cout << "\033[32m 3 third line " << endl; // green
cout << "\033[33m 4 fourth line" << endl; // yellow
cout << "\033[34m 5 first line" << endl; // blue
cout << "\033[35m 6 second line " << endl; // purple
cout << "\033[36m 7 third line " << endl; // deep green
cout << "\033[37m 8 first line" << endl;
cout << "\033[38m 9 second line " << endl;
cout << "\033[39m 10 third line " << endl;
// 这些转义符,其后输出的字体会按照前面定义的颜色进行输出,要改变颜色需要重新使用新的颜色转义字符,或者在句子末尾添加 \033 [ 0m 关闭字体颜色属性
cout << "颜色:" << endl;
cout << "\033[0m" << endl;
cout << "\033[34m \033[1m Test gaoliang \033[0m" << endl; // 变粗了 高亮 可以叠加此类转义字符
cout << "\033[32m \033[1m \033[4m Test xaihuanxian \033[0m" << endl;
cout << "\033[32m \033[7m Test fanxain \033[0m" << endl; // 加了背景色
cout << "\033[34m \033[8m Test input hidden:" << endl;
//string name;
//cin >> name;
cout << "\033[0m";
// 使用一些特殊符号的unicode编码进行输出,并改变其填充颜色
cout << "\033[31m \u2764 \u2764 \u2764 \u2764" << endl; // 心型图标
cout << "\u2605" << endl; // 星星
// 通过复制特殊图片
cout << "卐" << endl;
}
注意点:
1 其中,一般我们通过 " \033 [ xm \033 [ xm " 一对进行控制,前面的控制跟在它后面的句子,后面的控制该句后面进行输出的句子,如果改变一条句子的字体颜色,可以在后面使用 \033 [ 0m 关闭属性,那么后面的句子就不会受前面的影响了;
2 其中的颜色控制符可以叠加使用,比如控制字体颜色的,和控制字体背景色的,及控制其他属性的可以结合起来使用
3 有时候想要输出一些特殊的字符,使界面美化,可以参考http://blog.csdn.net/tectool/article/details/51577914 该博客,其中的js转义字符,在ubuntu下也可以使用;