iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 检测`cout`是否输出到正确接受颜色的终端?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

是否还有其他方法可以知道cout输出到正确接受颜色的终端? 我正在使用this header的颜色,我已经使用if(isatty(1))知道输出goes to a terminal. 不幸的是,当我向Xcode的控制台输出颜色时,我获得了未转义的序列 – 但是当它从OS中的Terminal.app或iTerm执行应用程序时它可以正常工作. 我想Xcode的控制台将自己标识为终端,但仍然忽略了颜色序
是否还有其他方法可以知道cout输出到正确接受颜色的终端?

我正在使用this header的颜色,我已经使用if(isatty(1))知道输出goes to a terminal.

不幸的是,当我向Xcode的控制台输出颜色时,我获得了未转义的序列 – 但是当它从OS中的Terminal.app或iTerm执行应用程序时它可以正常工作.

我想Xcode的控制台将自己标识为终端,但仍然忽略了颜色序列……

所以我希望有更好的检测 – 如果可能的话.

我的代码本身很简单,就像这样,如果isatty为真,则返回一个彩色字符串,然后它转到cout:

std::string Slot::description()
{
    if(isatty(1))
    {
        return FBLU("my_String");
    }
    else
    {
        return "my_String";
    }
}

Xcode的输出

c – 检测`cout`是否输出到正确接受颜色的终端?

iTerm的输出

c – 检测`cout`是否输出到正确接受颜色的终端?

解决方法

特别是对于XCode,你可以检查getenv(“TERM”),因为它将在xcode中返回null,如果你在“真正的”终端中运行,则不应该这样做.

为了更可靠地确定您是否有彩色终端,ncurses可能是最佳选择.

大佬总结

以上是大佬教程为你收集整理的c – 检测`cout`是否输出到正确接受颜色的终端?全部内容,希望文章能够帮你解决c – 检测`cout`是否输出到正确接受颜色的终端?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。