我有一个在 Linux 上运行的 C 文件。它以红色(失败)和绿色(通过)打印一些行。如您所料,它在 printf 语句中使用如下转义码:
#define BLACK "\033[22;30m"
#define GREEN "\033[22;31m"
printf(GREEN "this will show up green" BLACK "\n");
如果末尾的黑色不存在,则终端文本将继续为绿色。如果您没有捕获它,这对于具有非黑色背景的终端窗口来说很好,但否则您最终会得到黑底黑字。不好!运行程序会出现这个问题,捕获文本文件中的输出然后用“more”或“less”查看文件也是如此。
是否有恢复默认值而不是在 printf 语句末尾指定颜色的代码?这需要在 C 中,但我有兴趣阅读其他方法。
我更新了我的宏如下(注 31 为红色):
#define RESET_COLOR "\e[m"
#define MAKE_GREEN "\e[32m"
printf(MAKE_GREEN "this will show up green" RESET_COLOR "\n");
我发现以下链接有助于理解这些代码的工作原理:
最佳答案
关于c++ - C 代码更改终端文本颜色;如何恢复默认值? Linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3506504/