Je fais une application simple qui nécessite une sortie colorée. Comment puis-je rendre ma sortie colorée comme le font emacs et bash?
Je me fiche de Windows, car mon application est uniquement destinée aux systèmes UNIX.
Tous les émulateurs de terminal modernes utilisent des codes d'échappement ANSI pour afficher les couleurs et d'autres choses.
Ne vous embêtez pas avec les bibliothèques, le code est vraiment simple.
Plus d'informations ici .
Exemple 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;
}
La gestion des séquences de couleurs peut devenir désordonnée et différents systèmes peuvent utiliser différents indicateurs de séquence de couleurs.
Je vous suggère d'essayer d'utiliser ncurses . Outre la couleur, ncurses peut faire beaucoup d'autres choses intéressantes avec l'interface utilisateur de la console.
la source
Vous pouvez générer des codes de contrôle de couleur spéciaux pour obtenir une sortie de terminal colorée, voici une bonne ressource sur la façon d'imprimer les couleurs .
Par exemple:
EDIT: Mon original utilisait des codes de couleur d'invite, ce qui ne fonctionne pas: (Celui-ci le fait (je l'ai testé).
la source
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~
Rien de plus qu'un tas d'erreurs de compilation :(22
par1
pour le voir en gras .Vous pouvez attribuer une couleur à chaque fonctionnalité pour la rendre plus utile.
De même, vous pouvez sélectionner différents codes de couleur et rendre cela plus générique.
la source
Si vous utilisez la même couleur pour l'ensemble du programme, vous pouvez définir la
printf()
fonction.la source
Parce que vous ne pouvez pas imprimer un caractère avec un formatage de chaîne. Vous pouvez également penser à ajouter un format avec quelque chose comme ça
f
est le format comme dansprintf
va imprimer
blue bar
va imprimer
red 97
la source
lecture de Wikipedia :
la source