Todos los emuladores de terminal modernos usan códigos de escape ANSI para mostrar colores y otras cosas.
No te molestes con las bibliotecas, el código es realmente simple.
Ejemplo en C:
#include
#define ANSI_COLOR_RED “\ x1b [31m”
#define ANSI_COLOR_GREEN “\ x1b [32m”
#define ANSI_COLOR_YELLOW “\ x1b [33m”
#define ANSI_COLOR_BLUE “\ x1b [34m”
#define ANSI_COLOR_MAGENTA “\ x1b [35m”
#define ANSI_COLOR_CYAN “\ x1b [36m”
#define ANSI_COLOR_RESET “\ x1b [0m”
int main (int argc, char const * argv []) {
printf (ANSI_COLOR_RED “¡Este texto es ROJO!” ANSI_COLOR_RESET “\ n”);
printf (ANSI_COLOR_GREEN “¡Este texto es VERDE!” ANSI_COLOR_RESET “\ n”);
printf (ANSI_COLOR_YELLOW “¡Este texto es AMARILLO!” ANSI_COLOR_RESET “\ n”);
printf (ANSI_COLOR_BLUE “¡Este texto es AZUL!” ANSI_COLOR_RESET “\ n”);
printf (ANSI_COLOR_MAGENTA “¡Este texto es MAGENTA!” ANSI_COLOR_RESET “\ n”);
printf (ANSI_COLOR_CYAN “¡Este texto es CYAN!” ANSI_COLOR_RESET “\ n”);
devuelve 0;
}
El manejo de las secuencias de color puede ser complicado y diferentes sistemas pueden usar diferentes Indicadores de secuencia de color.
Te sugiero que intentes usar ncurses. Además del color, ncurses puede hacer muchas otras cosas interesantes con la interfaz de usuario de la consola.
Puede generar códigos de control de color especiales para obtener una salida de terminal de color. La salida del color del texto no está definida en ANSI C / C ++. En cambio, los creadores del lenguaje dejaron que eso dependiera del sistema operativo. En Linux, para cambiar el color del texto debe emitir lo que se conoce como comandos de terminal. Para hacer esto, simplemente cambie su declaración de salida para que contenga un comando de terminal.
Por ejemplo, vea el siguiente programa.
#include
int main ()
{
printf (“¡Hola, mundo! \ n”);
}
Para imprimir “Hola, mundo. \!” en rojo, cambiaría la declaración printf para leer:
printf (“\ 033 [22; 31mHola, mundo!”);
\ 033 [22; 31m es el comando del terminal: no se enviará al terminal, sino que emite un comando que cambia todos los resultados que se imprimen en rojo
Me acabo de dar cuenta de eso hoy, así que no me veas como un experto. A través de alguna piratería descubrí que hay 16 colores de terminal disponibles. No creo que haya más, y la limitación de 16 tendría sentido. Para probar diferentes colores, simplemente cambie los números después del corchete izquierdo.
\ 033 [22; 30m es negro
\ 033 [22; 31m es rojo
\ 033 [22; 32m es verde
Definiría macros para cada color en su programa ‘c’ si fuera usted.
Nunca he cambiado el color del texto de salida en un programa C / C ++ hasta hoy. ¡Los uso en scripts de shell para cambiar los colores de mi mensaje! Simplemente tomé lo que hice en mi script ksh y lo apliqué a C / C ++. Si desea una referencia definitiva sobre los colores y otros comandos de terminal disponibles, haría una búsqueda del Terminal HowTO en Google o en su cuadro de Linux si los documentos estuvieran instalados.
Además, he hecho muy poco con esto, pero hay una biblioteca para formatear pantallas tipo ventana en el terminal. Esta biblioteca se llama maldiciones. Terrible nombre, lo sé, pero es posible que también sea valioso. Tampoco puedo ayudarte, ya que solo he engañado con maldiciones en algunos programas de prueba cortos. Nunca lo he usado para ningún proyecto real.
Todos los colores que he encontrado son:
\ 033 [22; 30m – negro
\ 033 [22; 31m – rojo
\ 033 [22; 32m – verde
\ 033 [22; 33m – marrón
\ 033 [22; 34m – azul
\ 033 [22; 35m – magenta
\ 033 [22; 36m – cian
\ 033 [22; 37m – gris
\ 033 [01; 30m – gris oscuro
\ 033 [01; 31m – rojo claro
\ 033 [01; 32m – verde claro
\ 033 [01; 33m – amarillo
\ 033 [01; 34m – azul claro
\ 033 [01; 35m – magenta claro
\ 033 [01; 36m – cian claro
\ 033 [01; 37m – blanco