2012-02-06 72 views
13

¿Hay alguna manera de imprimir en color con iostream y Xcode? Me gustaría poder, por ejemplo, imprimir Hello World! con Hello rojo, World azul y ! amarillo. ¿Cómo puedo hacer eso?Salida de color en C++

+1

posible duplicado de (al menos relacionado) http://stackoverflow.com/questions/7414983/how-to-use-the-anscape-code-for-outputting-colored-text-on-console –

+0

Leer este hilo http://www.daniweb.com/software-development/cpp/threads/9921 –

+0

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

Respuesta

38

Necesita los códigos de color del terminal. Para Linux es el siguiente (el sistema puede ser diferente, mirar hacia arriba):

//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 */ 

Esto le permite hacer lo siguiente:

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

Nota: Si no se utiliza un RESET del color de permanecerá cambiado hasta la próxima vez que use un código de color.

+0

Está en Mac OS (al menos supongo que lo es, ya que menciona XCode) por lo que debería funcionar. –

+8

Funcionará en la Terminal, pero no en la ventana de consola Xcode –

+0

@ shuttle87, gracias por su respuesta. ¿Cómo puedo configurar en su lugar 3 variables con 3 colores diferentes, como 'char hello = 'H'',' char world =' W'' y 'char ex = '!'' Para colorear de manera diferente? – Shoe