Mit C in der Konsole die Farbe ändern?

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:

https://de.wikipedia.org/wiki/Ncurses

Naja, du könntest "color a" (Hellgrün) oder "color 2" (Grün) in der Konsole ausführen.

LordDerDunkel 
Fragesteller
 16.02.2019, 12:25

ja dann wird aber der GANZE Text in dieser Farbe

0