用ncurses处理转义序列? printf是否处理转义序列?

时间:2012-04-18 14:53:39

标签: c printf ncurses ansi-escape

我的程序从网络中读取一些文本数据,例如: Hello \033[1;34mworld\033[0m and bla bla bla!!!\n"。 当程序使用prinf输出该字符串时,单词" world"是蓝色的。但是当我使用带有wprintw或addch的ncurses接口时,我会看到带有转义序列的原始字符串。 这是否意味着printf处理转义序列? 使用ncurses处理转义序列的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

不,您的终端处理转义序列。您所看到的现象来自于ncurses的整个目的是跟踪预期的终端内容并能够重新绘制它,并且作为这样做的一部分,它会剥离任何转义序列。它可能提供一个替代函数来解释它们并将它们应用到它自己的终端应该包含的图像中,但是否则你将不得不自己完成这项工作......