van*_*van 3 c printf ncurses ansi-escape
我的程序从网络读取一些文本数据,例如:
Hello \033[1;34mworld\033[0m and bla bla bla!!!\n"。当程序使用prinf输出该字符串时,“world”一词是蓝色的。但是当我将 ncurses 接口与 wprintw 或 addch 一起使用时,我看到带有转义序列的原始字符串。这是否意味着 printf 是否处理转义序列?使用 ncurses 处理转义序列的最佳方法是什么?
不,您的终端会处理转义序列。您看到的现象来自这样一个事实:ncurses 的整个目的是跟踪预期的终端内容并能够重新绘制它,并且作为执行此操作的一部分,它会删除任何转义序列。它可能提供一个替代函数来解释它们并将它们应用到终端应包含的内容的自己的图像中,但否则您将不得不自己完成这项工作......