Wie kann man in der Programmiersprache C eine farbige Ausgabe erstellen?

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.


076097117114097 
Fragesteller
 24.06.2018, 16:43

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

0
Irgendjemand75  24.06.2018, 17:48
@Irgendjemand75

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.

3
769711711497  24.06.2018, 18:24
@Irgendjemand75

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.

0
Irgendjemand75  24.06.2018, 18:41
@769711711497

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.

2

Bild zum Beitrag

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.

 - (Computer, C (Programmiersprache))