c语言vt码的用法,你可以使用vt100转义码c ++的十六进制颜色值

我刚刚学会了如何使用vt100转义码来改变终端中的背景和文本颜色(\033[30m和\033[40m)。 我想知道是否有办法使用十六进制颜色代码而不是限制使用30 - 37或40 - 47的8种颜色。像:\033[#48FF1Fm。

如果这是不可能的,我不会感到惊讶,但我认为值得一提。

VT100从来没有做过颜色(参见ncurses常见问题解答如何使用VT100获得颜色?)。关于VT100,有用的信息来源是http://vt100.net

OP问题中的颜色序列在编码字符集的控制函数中粗略记录为SGR(选择图形再现)控制序列的值。 XTerm控制序列中记录了这些以及xterm 256色扩展。 Internet上有许多地方可以找到有关这些控制序列的信息,而不是所有这些都是有用的信息来源。

您可以使用24位颜色(请注意,十六进制颜色不一定是24位,并且您不需要十六进制来表示24位颜色):

printf"\x1b[${bg};2;${red};${green};${blue}m

"

例:

printf"\x1b[38;2;255;100;0mTRUECOLOR\x1b[0m

"

但请注意,您的终端必须支持它(vt100肯定不支持它,但有些软件终端模拟器可以支持它)。

还有256种颜色模式得到了相当广泛的支持 - 如果你想要超过16种颜色,这可能是你最好的选择。

资源:

https://gist.github.com/XVilka/8346728

VT-100是一个老终端,我很惊讶它有颜色的转义码!

另请参阅此堆栈溢出ANSI颜色转义序列列表,它有一些很好的答案。

ANSI / VT100终端控制转义序列的以下部分提供了一个示例。

Set Attribute Mode  [{attr1};...;{attrn}m

Sets multiple display attribute settings. The following lists standard attributes:

0   Reset all attributes

1   Bright

2   Dim

4   Underscore

5   Blink

7   Reverse

8   Hidden

Foreground Colours

30  Black

31  Red

32  Green

33  Yellow

34  Blue

35  Magenta

36  Cyan

37  White

Background Colours

40  Black

41  Red

42  Green

43  Yellow

44  Blue

45  Magenta

46  Cyan

47  White

然而,它看起来不仅仅是您找到的标准颜色,取决于设备支持,还有看起来像是调色板机制。

但是请参阅此文章Bash提示:颜色和格式(ANSI / VT100控制序列,以获得更加密集的列表以及其他链接。

对于256个前景色,转义序列是"[38; 5; ColorNumberm",其中颜色编号ColorNumber来自提供的表。看起来'm'是颜色编号后面的必填字符。

对于256种背景颜色,转义序列是"[48; 5; ColorNumberm"。

谢谢,这是一个非常有用的网站@Richard

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值