Wie kann man in der Programmiersprache C eine farbige Ausgabe erstellen?
Gibt es noch einen anderen Befehl außer system("color f1");(mit dem es nur möglich ist eine Farbe zu haben), welcher ermöglicht mehrere Farben auf einmal zu haben ?
2 Antworten
Es ist möglich mit escape sequenzen farbigen text auszugeben aber sowas wie "color f1" wo der ganze hintergrund oder vordergund die Farbe ändert wird schwer.
#include<stdio.h>
int main() {
printf("guten \e[31mtag\e[0m");
return 0;
}
Das geht übrigens in so gut wie allen sprachen. Geht nicht nur in C. Es kommt halt auf die Terminal an. Aber die meisten unterstützen das. Und ist viel portabler als einen color befehl. denn das wird nur auf windows funktionieren.
Muss man bei den Sequenzen etwas beachten?
Bei mir gibt der Compiler das was im printf steht nur so aus und es kommt keine Farbe.
Ok dann versuch vielleicht mal das:
printf("%s", "guten \e[31mtag\e[0m");
Welche Terminal benutzt du?
Ok bei mir in der normalen Windows cmd funktionierts auch nicht. Die Konsole unterstützt ANSI seit einem bestimmtem update leider nicht mehr :/
Aber es gibt so eine Datei womit das wieder geht. Vielleicht findest du hier irgendwas hilfreiches: https://duckduckgo.com/?q=windows+cmd+support+escape+sequences&t=ffab&atb=v117-1_b&ia=qa
Ich benutze übrigens die WSL Konsole. Da geht das immer. Das ist die Konsole vom Linux Subsystem. Ich empfehle die lieber zu benutzen.
wichtig ist das du "Windows.h" inkludierst.
Farbcode:
0: Schwarz
1: Blau (dunkel)
2: Grün (dunkel)
3: Türkis (dunkel)
4: Rot (dunkel)
5: Violett (dunkel)
6: Gelb (dunkel)
7: Weiß (dunkel)
8: Grau
9: Blau (hell)
10: Grün (hell)
11: Türkis (hell) (sieht aus wie pink)
12: Rot (hell)
13: Violett (hell)
14: Gelb (hell)
15: Weiß (hell)
von Escape Sequenzen würde ich eher abraten da sie nicht bei jedem Compiler funktionieren, dies jedoch sollte bei Windows immer funktionieren.

Kennst du zufällig so eine Sequenz? Wenn, könntst du mir bitte eine Zeile schreiben, wie so etwas aussehen könnte?