如何将彩色字符打印到支持它的 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
环境变量的值。它应该指定使用的特定终端类型(例如 vt100
、gnome-terminal
、xterm
、screen
、.. .)。然后在 terminfo database 中查找;检查 colors
功能。
关于c++ - 如何将彩色文本输出到 Linux 终端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2616906/