Estou fazendo um aplicativo simples que requer saída colorida. Como posso fazer minha saída colorida como emacs e bash?
Não me importo com o Windows, pois meu aplicativo é apenas para sistemas UNIX.
Todos os emuladores de terminal modernos usam códigos de escape ANSI para mostrar cores e outras coisas.
Não se preocupe com as bibliotecas, o código é realmente simples.
Mais informações estão aqui .
Exemplo em 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;
}
Lidar com seqüências de cores pode ficar confuso e sistemas diferentes podem usar indicadores de sequência de cores diferentes.
Eu sugiro que você tente usar ncurses . Além da cor, as ncurses podem fazer muitas outras coisas legais com a interface do usuário do console.
fonte
Você pode imprimir códigos especiais de controle de cores para obter uma saída de terminal colorida. Aqui está um bom recurso sobre como imprimir cores .
Por exemplo:
EDIT: Meu original usou códigos de cores de prompt, o que não funciona :( Este funciona (eu testei).
fonte
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 mais que um monte de erros de compilação :(22
por1
vê-lo em negrito .Você pode atribuir uma cor a cada funcionalidade para torná-la mais útil.
Da mesma forma, você pode selecionar códigos de cores diferentes e tornar isso mais genérico.
fonte
Se você usar a mesma cor para todo o programa, poderá definir a
printf()
função.fonte
Porque você não pode imprimir um caractere com formatação de string. Você também pode adicionar um formato com algo como isto
f
é o formato como emprintf
irá imprimir
blue bar
irá imprimir
red 97
fonte
lendo a Wikipedia :
fonte