Cómo imprimir una salida en color en c

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 () {

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;
}

fuente: stdlib y salida en color en C

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

Parte 1 Cambiar el color del texto de salida

Incluya la biblioteca de entrada y salida estándar. …

Incluye la biblioteca de entrada y salida de la consola. …

Use la función textcolor para definir qué color desea usar para el texto. …

Agregue texto de salida y finalice el programa.

Y para cambiar la pantalla de fondo de negro a azul

color = azul] Pruebe ese código: [/ color]

: [código]:

: #include

:

: int main ()

: {

: textcolor (BLANCO);

: cprintf (”

– ¡EL COLOR BLANCO!”);

:

: textcolor (AMARILLO);

: cprintf (”

– ¡COLOR AMARILLO!”);

:

: devuelve 0;

:}

: [/ código]:

Gracias, bueno, cambió el color del texto, pero también quiero cambiar el

color de fondo de negro para decir azul.

Puede asignar un color a cada funcionalidad para que sea más útil.

#define Color_Red “\ 33 [0: 31m \\]” // Color Start
#define Color_end “\ 33 [0m \\]” // Para eliminar la configuración anterior
#define LOG_RED (X) printf (“% s% s% s”, Color_Red, X, Color_end)

foo ()
{
LOG_RED (“Esto está en color rojo”);
}

Incluye la biblioteca de entrada y salida de la consola. Esto hará que sea más fácil capturar la entrada del teclado del usuario.

Utilizar el

textcolor / function para definir qué color desea usar para el texto. Puede usar esta función para variar los colores del texto de su salida. Los colores deben estar escritos en mayúsculas o expresados ​​como un número

#include
#include

principal()
{
textcolor (ROJO); // Puede escribir “4” en lugar de “ROJO”, pero no es tan legible
}
Agregue texto de salida y finalice el programa. Incluir un
cprintf
función para mostrar texto en su nuevo color. Utilizar una
getch
función al final para cerrar el programa cuando el usuario presiona una tecla.
#include
#include

principal()
{
textcolor (ROJO); // Puede escribir “4” en lugar de “ROJO”, pero no es tan legible
cprintf (“¡Hola, mundo!”);

getch ();
devuelve 0;
}