【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-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享