Ich mache eine einfache Anwendung, die farbige Ausgabe erfordert. Wie kann ich meine Ausgabe farbig machen wie Emacs und Bash?
Windows interessiert mich nicht, da meine Anwendung nur für UNIX-Systeme ist.
Alle modernen Terminalemulatoren verwenden ANSI-Escape-Codes, um Farben und andere Dinge anzuzeigen.
Kümmere dich nicht um Bibliotheken, der Code ist wirklich einfach.
Weitere Infos gibt es hier .
Beispiel in 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;
}
Der Umgang mit Farbsequenzen kann unübersichtlich werden und verschiedene Systeme verwenden möglicherweise unterschiedliche Farbsequenzindikatoren.
Ich würde vorschlagen, dass Sie versuchen, ncurses zu verwenden . Abgesehen von der Farbe können ncurses mit der Benutzeroberfläche der Konsole viele andere nette Dinge tun.
quelle
Sie können spezielle Farbsteuerungscodes ausgeben, um eine farbige Terminalausgabe zu erhalten. Hier finden Sie eine gute Ressource zum Drucken von Farben .
Beispielsweise:
BEARBEITEN: Mein Original verwendete sofortige Farbcodes, was nicht funktioniert :( Dieser funktioniert (ich habe es getestet).
quelle
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~
Nichts weiter als eine Reihe von Kompilierungsfehlern :(22
von1
es in sehen fett .Sie können jeder Funktionalität eine Farbe zuweisen, um sie nützlicher zu machen.
Ebenso können Sie verschiedene Farbcodes auswählen und diese allgemeiner gestalten.
quelle
Wenn Sie für das gesamte Programm dieselbe Farbe verwenden, können Sie die
printf()
Funktion definieren .quelle
Weil Sie kein Zeichen mit Zeichenfolgenformatierung drucken können. Sie können auch daran denken, ein Format mit so etwas hinzuzufügen
f
ist Format wie inprintf
wird gedruckt
blue bar
wird gedruckt
red 97
quelle
Wikipedia lesen :
quelle