为什么ansi转义对代码块不起作用,以及如何修复它?

问题描述

例如这段代码

#include <iostream>

using namespace std;

int main()
{
    cout << "\033[31m" << ".";

    return 0;
}

在 Visual Studio 控制台中打印一个红点,但在代码块控制台中它打印:

[31m*

如果有人知道如何为代码块控制台解决这个问题。

谢谢

解决方法

每个控制台都可以随意使用控制代码序列。有许多不同的标准。如果你想用一组给定的控制序列来控制你的输出,你必须满足所使用的控制台能够处理它们。一些终端仿真器可以配置为使用特殊的仿真,而另一些则根本没有控制序列。

查看 Terminal Emulations 以了解有多少不同的终端仿真可用。而维基百科的文章只列出了一个子集!

等等,我如何在像代码块这样的控制台中更改输出颜色

首先:查看用户手册并搜索“终端仿真”。也许你找到了用过的控件集,也许你会发现你用过的IDE中的控制台没有!如果是这样,就是这样。

也许您可以为您的编辑器使用不同的终端模拟器: How to change used terminal in Code::Blocks