在Cygwin下用C打印彩色文本

时间:2014-04-18 05:44:26

标签: c cygwin

我在C中有一些代码可以打印出不同颜色的文本行。

使用转义字符(例如here)在 Linux 上工作。
它使用SetConsoleTextAttribute

Windows 上工作

但我的问题是在使用Cygwin时 逃脱角色不会在Cygwin上工作 对GetConsoleScreenBufferInfo的调用总是失败,而 getLastErrorText()给了我这样的信息:

  

功能不正确。 (为0x1)。

所以我的问题是:如何从Cygwin终端中运行的C程序中打印彩色文本? 我需要安装特殊库吗?

1 个答案:

答案 0 :(得分:1)

感谢SzG和M Oehm的评论。

正如你所说,M Oehm,Linux的例子正在发挥作用。

我在代码中发现了问题。我使用Windows的颜色值而不是Linux的颜色值。

例如:

_ftprintf(target, TEXT("%c[%d;%dm%s%c[K\n"), 
          0x1B, foreground, background, printBuffer, 0x1B);

前景背景的值不正确。

现在它正在运作。