我正在使用ANSI代码在终端中为文本着色,除了循环外,它的效果很好,printf
ramdomly显示ANSI代码本身:
#define RED "\x1B[31m"
#define BLU "\x1B[34m"
#define RST "\x1B[0m"
for
{
printf(RED "red text\n" BLU "blue text" RST);
}
我随机得到:
red text // text displayed in red
[34m blue text // still in red
或者:
red text //text displayed in red
blue text // text displayed in blue
我尝试在两个不同的printf
中分隔颜色声明和文字,我尝试使用puts
,但它没用。我不使用ncurse
库,因为我认为它不适合这种情况。顺便说一句,我在MACOS 10.12上使用CLion,如果它可以提供帮助的话。我发现了一些像Charles Campbell's ANSI escape code这样的解决方案但不适用于C。
为什么ANSI代码搞乱了,我们怎么可能修复它?