c++ - 如何将彩色文本输出到 Linux 终端?

标签 c++ linux colors terminal

如何将彩色字符打印到支持它的 Linux 终端?

如何判断终端是否支持色码?

最佳答案

你需要输出ANSI colour codes .请注意,并非所有终端都支持此功能;如果不支持颜色序列,则会显示垃圾。

例子:

 cout << "\033[1;31mbold red text\033[0m\n";

这里,\033是ESC字符,ASCII 27。后面跟着[,然后是零个或多个数字,用;隔开,最后是字母 m。这些数字描述了从该点开始切换到的颜色和格式。

前景色和背景色的代码是:

         foreground background
black        30         40
red          31         41
green        32         42
yellow       33         43
blue         34         44
magenta      35         45
cyan         36         46
white        37         47

此外,您还可以使用这些:

reset             0  (everything back to normal)
bold/bright       1  (often a brighter shade of the same colour)
underline         4
inverse           7  (swap foreground and background colours)
bold/bright off  21
underline off    24
inverse off      27

table on Wikipedia对于其他不太广泛支持的代码。


要确定您的终端是否支持颜色序列,请读取 TERM 环境变量的值。它应该指定使用的特定终端类型(例如 vt100gnome-terminalxtermscreen、.. .)。然后在 terminfo database 中查找;检查 colors 功能。

关于c++ - 如何将彩色文本输出到 Linux 终端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2616906/

相关文章:

JAVA_HOME 和 PATH 环境变量在 UBUNTU 中不起作用

python - Stty 疯狂地使用 Python 子进程

r - 如何使用 formattable 和 color_tile 有条件地为表元素着色?

c++ - 对 `vtable for DigitalClock' 的 undefined reference - 对 `DigitalClock::staticMetaObject' 的 undefined reference - Qt

c++ - 实现一个Windows资源管理器扩展 View 界面

c++ - 并行运行时采用迭代器对的函数不起作用

python - xlwings:从 Python 设置前景文本颜色

c++ - 在此上下文中使用符号 (&) 的说明

linux - zsh 脚本 [进程完成] 没有返回到 shell

css - 悬停在按钮上时文本颜色发生变化