为什么 ansi escape 在代码块上不起作用,如何解决?

Why does ansi escape doesn t work on codeblocks, and how to fix it?

比如这段代码:

#include <iostream>

using namespace std;

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

    return 0;
}

在 visual studio 控制台中打印一个红点,但在 codeblocks 控制台中它打印这个:

[31m*

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

谢谢

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

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

and so on how do i change the output color in a console like codeblocks

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

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