【C语言】输出带颜色的打印
2021/8/6 6:08:27
本文主要是介绍【C语言】输出带颜色的打印,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、Linux下控制台文字上色的方法
Linux下控制台颜色是通过添加专用数字来选择的。这些数字夹在 "\e["和 "m"之间。如果指定一个以上的数字,则用分号将它们分开。
举几个例子:
(1)第一个数字(31)为前景颜色(红色);第二个数字为(42)背景颜色(绿色)
echo -e "\e[31;42m"
(2)使用"\e[0m"序列将颜色重新设置为正常值
echo -e "\e[0m" 或 echo -e "\033[0m"
(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() 颜色设置示例代码如下所示。
printf("\e[31m\e[42m Hello World. \e[0m \n"); // 红色字体,绿色背景
二、Windows下控制台文字上色的方法
Windows下控制台颜色是通过SetConsoleTextAttribute()函数完成的。SetConsoleTextAttribute()函数的原型如下所示。
BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);
其中2个参数的含义如下所示:
- hConsoleOutput:指向控制台的句柄。
- wAttributes:文本属性。
hConsoleOutput可以选择以下3种句柄: - STD_INPUT_HANDLE: 标准输入的句柄
- STD_OUTPUT_HANDLE: 标准输出的句柄
- STD_ERROR_HANDLE: 标准错误的句柄
wAttributes可以控制前景色和背景色:
- FOREGROUND_BLUE: 字体颜色:蓝
- FOREGROUND_GREEN: 字体颜色:绿
- FOREGROUND_RED: 字体颜色:红
- FOREGROUND_INTENSITY: 前景色高亮显示
- BACKGROUND_BLUE: 背景颜色:蓝
- BACKGROUND_GREEN: 背景颜色:绿
- BACKGROUND_RED: 背景颜色:红
- BACKGROUND_INTENSITY 背景色高亮显示
demo如下:
#include <stdio.h> #include <windows.h> int main() { SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED); printf("red\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN); printf("green\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_BLUE); printf("blue\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED|FOREGROUND_GREEN); printf("red+green=yellow\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED|FOREGROUND_BLUE); printf("red+blue=purple\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN|FOREGROUND_BLUE); printf("green+blue=cyan\n"); SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED|BACKGROUND_GREEN); printf("Add background\n"); return 0; }
运行结果如下:
这篇关于【C语言】输出带颜色的打印的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-26怎么使用nsenter命令进入容器?-icode9专业技术文章分享
- 2024-12-26导入文件提示存在乱码,请确定使用的是UTF-8编码怎么解决?-icode9专业技术文章分享
- 2024-12-26csv文件怎么设置编码?-icode9专业技术文章分享
- 2024-12-25TypeScript基础知识详解
- 2024-12-25安卓NDK 是什么?-icode9专业技术文章分享
- 2024-12-25caddy 可以定义日志到 文件吗?-icode9专业技术文章分享
- 2024-12-25wordfence如何设置密码规则?-icode9专业技术文章分享
- 2024-12-25有哪些方法可以实现 DLL 文件路径的管理?-icode9专业技术文章分享
- 2024-12-25错误信息 "At least one element in the source array could not be cast down to the destination array-icode9专业技术文章分享
- 2024-12-25'flutter' 不是内部或外部命令,也不是可运行的程序 或批处理文件。错误信息提示什么意思?-icode9专业技术文章分享