Estoy haciendo una aplicación simple que requiere resultados en color. ¿Cómo puedo hacer que mi salida sea de color como emacs y bash do?
No me importa Windows, ya que mi aplicación es solo para sistemas UNIX.
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.
Más información está aquí .
Ejemplo en C:
#include <stdio.h>
#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 "This text is RED!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_GREEN "This text is GREEN!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_YELLOW "This text is YELLOW!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_BLUE "This text is BLUE!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_MAGENTA "This text is MAGENTA!" ANSI_COLOR_RESET "\n");
printf(ANSI_COLOR_CYAN "This text is CYAN!" ANSI_COLOR_RESET "\n");
return 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.
fuente
Puede generar códigos de control de color especiales para obtener una salida de terminal de color, aquí hay un buen recurso sobre cómo imprimir colores .
Por ejemplo:
EDITAR: Mi original usaba códigos de color de solicitud, que no funciona :( Este sí (lo probé).
fuente
edition.c: In function ‘int main(int, const char**)’: edition.c:4: error: unknown escape sequence '\]' edition.c:4: error: unknown escape sequence '\]' edition.c edition.c~
Nada más que un montón de errores de compilación :(22
por1
lo vea en negrita .Puede asignar un color a cada funcionalidad para que sea más útil.
Del mismo modo, puede seleccionar diferentes códigos de color y hacer que esto sea más genérico.
fuente
Si usa el mismo color para todo el programa, puede definir la
printf()
función.fuente
Porque no puedes imprimir un personaje con formateo de cadena. También puede pensar en agregar un formato con algo como esto
f
es formato como enprintf
imprimirá
blue bar
imprimirá
red 97
fuente
leyendo Wikipedia :
fuente