我目前在C ++的空闲时间编写玩具编译器,我正在使用Visual Studio做我的开发工作。虽然我在Windows系统上,但我已经用msysgit bash版本替换了我的标准控制台。现在,我正在尝试实现颜色编码的错误消息,这些消息在bash中工作正常,但在cmd中不起作用。我使用bash颜色键(如\ x1B [0m等]着色我的文本...现在,问题是当编译器向控制台输出错误消息时,使用cmd.exe作为其默认控制台的人会看到乱码看似随机的字母使得错误信息难以破译。我发现工作的一个解决方案是在Windows系统上完全禁用彩色编码,但它有点不方便。我正在寻找一种方法来确定编译器输出到的控制台是cmd.exe还是bash.exe。我查看了MSDN并没有找到任何特别有用的东西。