如何停止 ANSI 文本颜色代码的影响或在某些字符后将文本颜色设置回默认值?

Abh*_*mar 7 bash terminal ansi-colors

ANSI 颜色代码的范围是什么。在下面的代码中,所有内容都是蓝色的。我只想要蓝色的“编译成功”。这里有像关闭标签(例如在 HTML 中)这样的东西吗?

cout<<"\n\e[0;34mCompiled Successfully!!\n";
sym_table.render();
cout<<"\n\nAll variables according to sizes:\n";
for(auto el: addr_table){
    cout<<el.first<<"     "<<el.second<<endl;
}
Run Code Online (Sandbox Code Playgroud)

Sha*_*iri 10

您需要reset在字符串末尾添加

# Reset
Color_Off='\033[0m'       # Text Reset

# Regular Colors
Black='\033[0;30m'        # Black
Red='\033[0;31m'          # Red
Green='\033[0;32m'        # Green
Yellow='\033[0;33m'       # Yellow
Blue='\033[0;34m'         # Blue
Purple='\033[0;35m'       # Purple
Cyan='\033[0;36m'         # Cyan
White='\033[0;37m'        # White   
Run Code Online (Sandbox Code Playgroud)

这:

cout<<"\n\e[0;34mCompiled Successfully!!\n";
Run Code Online (Sandbox Code Playgroud)

应该:

cout  << "\n\e[0;34mCompiled Successfully!!\e[m\n";   
Run Code Online (Sandbox Code Playgroud)

或更好:

\033[0;34mCompiled Successfully!!\033[m  
Run Code Online (Sandbox Code Playgroud)

更多细节:

如何在Linux中更改echo的输出颜色


请注意,在 C++ 中:
您可以:

#define blue "\033[0;34"
#define reset "\033[m"
...
...
...
std::cout << blue << "your-string" << reset << '\n';
Run Code Online (Sandbox Code Playgroud)