- 🐚作者简介:花神庙码农(专注于Linux、WLAN、TCP/IP、Python等技术方向)
- 🐳博客主页:花神庙码农 ,地址:https://blog.csdn.net/qxhgd
- 🌐系列专栏:C语言编程
- 📰如觉得博主文章写的不错或对你有所帮助的话,还望大家三连支持一下呀!!! 👉关注✨、点赞👍、收藏📂、评论。
- 如需转载请参考转载须知!!
Linux终端中如何彩色输出——C语言篇
- 基础知识
- C程序示例
- 简单示例
- 复杂示例
基础知识
- 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。转义序列是以ESC开头,即用\033来完成(Escape的ASCII码用十进制表示是27,也就是十六进制0x1B,用八进制表示就是033。)
- 设置让Linux终端可以输出有颜色的字体,其格式如下:
\033[显示方式;前景色;背景色m
- 控制码
– 控制字符是打开某种样式,输出完成时需要再关闭样式才能使terminal恢复到原来状态;
– \033是ESC字符,和 \e、\E 是一回事,使用 \e 会更简单一些.
控制码 | 作用 |
---|---|
\033[0m | 关闭所有属性 |
\033[1m | 设置高亮度 |
\033[4m | 下划线 |
\033[5m | 闪烁 |
\033[7m | 反显 |
\033[8m | 消隐 |
\033[30m----\33[37m | 设置前景色 |
\033[40m----\33[47m | 设置背景色 |
- 显示方式
0(默认值)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
- 前景色
30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋红)、36(青色)、37(白色)
- 背景色
40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋红)、46(青色)、47(白色)
C程序示例
简单示例
- 彩色打印hello world:
#include <stdio.h>
int main()
{
printf("\e[32m%s\e[0m\n", "hello world\033[0m");
}
复杂示例
- 封装可打印不同颜色的函数:
#include <cstdio>void printf_red(const char *s)
{printf("\033[0m\033[1;31m%s\033[0m", s);
}void printf_green(const char *s)
{printf("\033[0m\033[1;32m%s\033[0m", s);
}void printf_yellow(const char *s)
{printf("\033[0m\033[1;33m%s\033[0m", s);
}void printf_blue(const char *s)
{printf("\033[0m\033[1;34m%s\033[0m", s);
}void printf_pink(const char *s)
{printf("\033[0m\033[1;35m%s\033[0m", s);
}void printf_cyan(const char *s)
{printf("\033[0m\033[1;36m%s\033[0m", s);
}int main()
{printf_red("Hello World.\n");printf_green("Hello World.\n");printf_yellow("Hello World.\n");printf_blue("Hello World.\n");printf_pink("Hello World.\n");printf_cyan("Hello World.\n");return 0;
}
如本文对你有些许帮助,欢迎大佬支持我一下(点赞+收藏+关注、关注公众号等),您的支持是我持续创作的不竭动力
支持我的方式