Mit C in der Konsole die Farbe ändern?
Ich möchte wissen ob man mit C z.B.: die Buchstaben farbe nur durch Code ändern kann und wenn ja wie?
4 Antworten
Ja, das kann man. Du benötigst dazu eine Escape-Sequenz im Format:
ESC[ForegroundColor;BackgroundColor
In C wäre diese Sequenz also für eine rote Schriftfarbe:
\x1b[31m
Ausgeführt in einem Programm:
#include <stdio.h>
int main(void) {
printf("\x1b[31mRed");
return 0;
}
Nun kannst du auch zwischen verschiedenen Farben wechseln, du musst sie nur stets davor setzen:
#include <stdio.h>
int main(void) {
printf("\x1b[31mRed \x1b[34mBlue");
return 0;
}
Um alle Farben wieder auf den Anfangszustand zurückzusetzen, kann die Sequenz
\x1b[0m
genutzt werden.
Da die Ausgaben zusammen mit Escape-Sequenzen nicht gut lesbar sind, kannst du dir diese ja auch in Variablen oder Makros legen und dann konkatenieren.
Eine Übersicht über viele verschiedene Farbcodes findest du hier.
Das kannst Du über Escape Sequenzen machen. Schau Dir mal diese Liste an: ANSI/VT100 Control sequences
Es wird nicht unter Windows funktionieren, aber unter unixoiden Betriebssystemen.
Da sich alle bisherigen Antworten auf Escape-Sequenzen beziehen: Das ist weder sauber, noch portabel.
Wenn du es wirklich ordentlich machen willst, nutze eine dafür vorgesehene Bibliothek. Wenn es dazu noch portabel sein soll, dann nutze die ncurses Bibliothek.
Hier gibts eine kurze Zusammenfassung und hilfreiche Links:
Naja, du könntest "color a" (Hellgrün) oder "color 2" (Grün) in der Konsole ausführen.