Printf 打印彩色字体
在printf函数的控制字符中,使用如下格式进行打印:\033[attr1;attr2;attrnm
+字符串,具体可以以下示例
其中attr分别表示各种属性对应的数字,用分号隔开,各个属性对应数字如下表
通用格式控制 | 前景色 | 背景色 |
---|---|---|
0 重置所有属性 | 30 黑色 | 40 黑色 |
1 高亮/加粗 | 31 红色 | 41 红色 |
2 暗淡 | 32 绿色 | 42 绿色 |
4 下划线 | 33 黄色 | 43 黄色 |
5 闪烁 | 34 蓝色 | 44 蓝色 |
7 反转 | 35 品红 | 45 品红 |
8 隐藏 | 36 青色 | 46 青色 |
37 白色 | 47 白色 |
这种设置具有后效性,即设置一次后,后面的printf函数默认采用上次的设置,因此一般每次设置时,为了防止前面的设置的影响,第一个attr一般设置成0;
#include <cstdio>
using namespace std;
int main(){
printf("\033[31;42mred font, green background \n");
printf("\033[30mblack font, green background \n"); // 绿色背景是受到上次设置的影响
printf("\033[0mclear settings \n"); // 重置所有设置
printf("recover to defualt\n");
printf("\033[0;31;42mred font, green background \033[0m") // 比较好的习惯,在最后再清零。
}