Categorías: Programacion

¿Cómo usar colores en C?

Una de las cosas que siempre nos gusta cuando diseñamos un programa es darle un aspecto visual, adecuado al mismo. Pero el problema lo tenemos cuando nuestro software no va a tener una interfaz gráfica, sino que va a funcionar solo en modo texto.

En este caso una de las cosas que nos podemos plantear para añadirle algo de mejora visual, es utilizar distintos colores en la salida por pantalla.

¿Cómo usar colores en C?

Muchos os preguntaréis si es posible pintar la pantalla con un conjunto de colores y no utilizar en todo momento el color que marca la terminal del usuario.
Pues sí, es posible y en este artículo os vamos a enseñar cómo hacerlo.

Para ello vamos a utilizar algo que se denomina caracteres no imprimibles que como su propio nombre indica son caracteres no visibles, pero que realizan funciones normalmente de control.

Para obtener nuestro código que modifique el color debemos empezar por \x1b[ luego deberemos introducir un 3 si queremos indicar el color del texto o un 4 si queremos indicar el color del fondo. Después deberemos usar el número según la siguiente tabla:

Finalmente podemos volver al estado normal con el carácter \x1b[0m.

Os adjuntamos un código para que veáis como usar los colores y un conjunto de define, para que os sea más sencillo su utilización:

#include <stdio.h>
#include <stdlib.h>

#define RESET_COLOR    "\x1b[0m"
#define NEGRO_T        "\x1b[30m"
#define NEGRO_F        "\x1b[40m"
#define ROJO_T     "\x1b[31m"
#define ROJO_F     "\x1b[41m"
#define VERDE_T        "\x1b[32m"
#define VERDE_F        "\x1b[42m"
#define AMARILLO_T "\x1b[33m"
#define    AMARILLO_F  "\x1b[43m"
#define AZUL_T     "\x1b[34m"
#define    AZUL_F      "\x1b[44m"
#define MAGENTA_T  "\x1b[35m"
#define MAGENTA_F  "\x1b[45m"
#define CYAN_T     "\x1b[36m"
#define CYAN_F     "\x1b[46m"
#define BLANCO_T   "\x1b[37m"
#define BLANCO_F   "\x1b[47m"

int main(){

printf(ROJO_T "ROJO " AZUL_T " AZUL " AMARILLO_T VERDE_F " BRASIL " RESET_COLOR "\n");
return 0;
}

El resultado de la ejecución es el siguiente:

Esperamos que os haya gustado esta entrada y si tenéis alguna duda, podéis dejarnos un comentario.

Jorge Durán

Entusiasta de la tecnología desde los 10 años, desarrollador y creador de varios proyectos de software y autodidacta por naturaleza. Ingeniero Informático por la USAL y .Net backend developer en idealista.

Share
Publicado por
Jorge Durán

Recent Posts

Docker: conceptos principales y tutorial paso a paso

Hoy queremos hablaros de Docker un proyecto que cada día es más usado, porque permite…

3 años hace

Crea diagramas rápidamente usando código

Cada vez estamos más acostumbrados a usar código para generar la infraestructura (IaC), documentar nuestro…

3 años hace

Procesamiento del lenguaje natural con ElasticSearch

Uno de los problemas que se presentan con una mayor frecuencia hoy en día, es…

4 años hace

Elige tecnología clásica y aburrida

Uno de los problemas que solemos tener los programadores, es que nos gusta estar a…

4 años hace

Cómo usar Docker en Windows

Docker es una de las herramientas más usadas por los desarrolladores, sin embargo, usarlo en…

4 años hace

Analiza el coste del uso de JavaScript

Como seguramente sabrás el uso de JavaScript ha crecido exponencialmente en los últimos tiempos, sin…

4 años hace