colored_fputs()
colored_fputs()函数用于将输出的文本“上色”并且输出。在这里有一点需要注意:Windows和Linux下控制台程序上色的方法是不一样的。Windows下是通过SetConsoleTextAttribute()方法给控制台中的文本上色;Linux下则是通过添加一些ANSI控制码完成上色。
Linux下控制台文字上色的方法
Linux下控制台颜色是通过添加专用数字来选择的。这些数字夹在 "\e["和 "m"之间。如果指定一个以上的数字,则用分号将它们分开。
举几个例子:
(1)第一个数字(31)为前景颜色(红色);第二个数字为(42)背景颜色(绿色)
(3)颜色对应关系如下所示:
\e[30m -- \e[37m 设置前景色(字体颜色)
echo -e "\e[30m" 灰色
echo -e "\e[31m" 红色
echo -e "\e[32m" 绿色
echo -e "\e[33m" 黄色
echo -e "\e[34m" 蓝色
echo -e "\e[35m" 紫色
echo -e "\e[36m" 淡蓝色
echo -e "\e[37m" 白色
\e[40m -- \e[47m 设置背景色
echo -e "\e[40m" 灰色
echo -e "\e[41m" 红色
echo -e "\e[42m" 绿色
echo -e "\e[43m" 黄色
echo -e "\e[44m" 蓝色
echo -e "\e[45m" 紫色
echo -e "\e[46m" 淡蓝色
echo -e "\e[47m" 白色
具体到编程中,printf() 颜色设置示例代码如下所示。
Windows下控制台文字上色的方法
Windows下控制台颜色是通过SetConsoleTextAttribute()函数完成的。SetConsoleTextAttribute()函数的原型如下所示。其中2个参数的含义如下所示:
hConsoleOutput:指向控制台的句柄。
wAttributes:文本属性。
hConsoleOutput可以选择以下3种句柄:
STD_INPUT_HANDLE: 标准输入的句柄wAttributes可以控制前景色和背景色:
STD_OUTPUT_HANDLE: 标准输出的句柄
STD_ERROR_HANDLE: 标准错误的句柄
FOREGROUND_BLUE: 字体颜色:蓝控制台文本上色demo代码如下所示。
FOREGROUND_GREEN: 字体颜色:绿
FOREGROUND_RED: 字体颜色:红
FOREGROUND_INTENSITY: 前景色高亮显示
BACKGROUND_BLUE: 背景颜色:蓝
BACKGROUND_GREEN: 背景颜色:绿
BACKGROUND_RED: 背景颜色:红
BACKGROUND_INTENSITY 背景色高亮显示