std::cout << "blblabla... [done]" << std::endl;
是否可以使[done]
成为另一种颜色,并且可能是大胆的?我正在使用Windows 7
答案 0 :(得分:21)
这取决于您使用的操作系统。
如果您使用的是Windows SetConsoleTextAttribute:
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE); // Get handle to standard output
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE);
您还可以组合值。
应用程序可以组合使用 前景和背景常数 实现不同的颜色。例如, 以下组合导致 蓝色背景上的明亮青色文本。
FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE
然后,您可以使用WriteFile或WriteConsole来实际编写控制台。
答案 1 :(得分:6)
是的,您只需发送standard escape sequence,例如
const char* green = "\033[0;32m";
const char* white = "\033[0;37m";
const char* red = "\033[0;31m";
double profit = round(someComplicatedThing());
std::cout << (profit < 0 ? red : (profit > 0 ? green : white))
<< "Profit is " << profit << white << std::endl;
您还可以使用粗体与正常,彩色背景等。Wikipedia page on ANSI escape code包含详细信息,Bash-Prompt HOWTO包含示例。
答案 2 :(得分:3)
You can use this tiny libraries which I have used personally before。它非常易于使用并与标准流集成。它有一个清晰的控制台屏幕功能顺便说一句。这个例子来自我写的代码:
std::cout << con::clr; // Clear the Intro Screen
// fg means the foreground
std::cout << std::endl << std::endl << con::fg_green
<< "\t\tFile Encrypted!";
答案 3 :(得分:-1)
是的,你可以使用系统();函数从command.com运行命令,其中一个是颜色。 颜色a会让你想要的绿色。 您还可以看到帮助选项颜色中的其他颜色/? 。 而对于大胆的事情,你可以使用ascii图表中的字符来做到这一点。 例如“\ n”是Newline。
答案 4 :(得分:-3)
快速方法:添加#include <stdlib.h>
,然后在所需文字前添加system( "color 5B" );
。所以它看起来像这样:
#include <stdlib.h>
std::cout << "blblabla..."<<std::endl;
system( "color 5B" );
std::cout<< "[done]" << std::endl;
您可以尝试不同的颜色:1A,2B,3C,4F ......