2012-02-06 4 views
13

C'è un modo per stampare l'output colorato usando iostream e Xcode? Mi piacerebbe poter, ad esempio, stampare Hello World! con Hello rosso, World blu e ! giallo. Come lo posso fare?Output colorato in C++

+1

possibile duplicato (almeno correlato) http://stackoverflow.com/questions/7414983/how-to-use-the-ansi-escape-code-for-outputting-colored-text-on-console –

+0

Leggi questa discussione http://www.daniweb.com/software-development/cpp/threads/9921 –

+0

Vedere http://ascii-table.com/ansi-escape-sequences.php –

risposta

38

Sono necessari i codici colore del terminale. Per linux è il seguente (il sistema potrebbe essere diverso, guardare in su):

//the following are UBUNTU/LINUX ONLY terminal color codes. 
#define RESET "\033[0m" 
#define BLACK "\033[30m"  /* Black */ 
#define RED  "\033[31m"  /* Red */ 
#define GREEN "\033[32m"  /* Green */ 
#define YELLOW "\033[33m"  /* Yellow */ 
#define BLUE "\033[34m"  /* Blue */ 
#define MAGENTA "\033[35m"  /* Magenta */ 
#define CYAN "\033[36m"  /* Cyan */ 
#define WHITE "\033[37m"  /* White */ 
#define BOLDBLACK "\033[1m\033[30m"  /* Bold Black */ 
#define BOLDRED  "\033[1m\033[31m"  /* Bold Red */ 
#define BOLDGREEN "\033[1m\033[32m"  /* Bold Green */ 
#define BOLDYELLOW "\033[1m\033[33m"  /* Bold Yellow */ 
#define BOLDBLUE "\033[1m\033[34m"  /* Bold Blue */ 
#define BOLDMAGENTA "\033[1m\033[35m"  /* Bold Magenta */ 
#define BOLDCYAN "\033[1m\033[36m"  /* Bold Cyan */ 
#define BOLDWHITE "\033[1m\033[37m"  /* Bold White */ 

Questo vi permette di effettuare le seguenti operazioni:

std::cout << RED << "hello world" << RESET << std::endl; 

Nota: se non si utilizza ripristinare il colore rimarrà cambiato fino alla prossima volta che usi un codice colore.

+0

È su Mac OS (almeno presumo che lo sia, dal momento che menziona XCode) quindi dovrebbe funzionare. –

+8

Funzionerà in Terminale, ma non nella finestra della console Xcode –

+0

@ shuttle87, grazie per la risposta. Come posso impostare invece 3 variabili con 3 colori diversi, ad esempio 'char hello = 'H'',' char world =' W'' e 'char ex = '!'' Per essere colorati in modo diverso? – Shoe