2010-02-27 151 views
18
std::cout << "blblabla... [done]" << std::endl; 

是否有可能使[done]處於另一種顏色,並且可能是粗體?我使用的是Windows 7C++ win32控制檯中的顏色

回答

16

這取決於您所使用的操作系統。

如果你正在使用Windows,你想SetConsoleTextAttribute

​​

您也可以組合值。

應用程序可以結合 前景和背景常數 實現不同的顏色。例如, 下面的組合導致 藍色背景上的亮青色文本。

FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE

然後,您可以使用WriteFileWriteConsole來實際編寫控制檯。

+0

我不知道爲什麼這個答案沒有被接受。 – SwiftsNamesake 2017-08-14 20:13:56

+0

嗨,我想做一個控制檯遊戲,並想知道是否有一個特定的文章或頁面描述所有這些相關的控制檯功能來改變文本顏色和東西? – 2017-09-12 02:50:00

-1

是的,你可以,你可以使用系統();函數來運行來自command.com的命令,其中之一是顏色。 顏色a會讓你變成你想要的綠色。 您也可以從幫助選項顏色/?中看到其他顏色。 。 和大膽的事情,你可以使用ASCII圖中的字符來做到這一點。 如「\ n」是Newline。

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例子。

+5

不要忘記文檔如何獲取ANSI.SYS加載,它不是自動的。 – 2010-02-27 17:14:03

+9

這不適用於Windows – 2014-02-07 02:18:58

+2

這不適用於Windows開箱即用。 – Kyberias 2015-02-09 14:09:30

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!"; 
-2

一個快速的方法:包括#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 ...