[C/C++] Linux Standart Farbe der Konsole

Hallo!

Ich bin auf der Suche nach einer Escapesequenz, die die aktuelle Farbe meines Linux Konsolen Programms wieder auf die Standartfarbe der Konsole umsetzt.

cout << \033[01;37m << endl;

wäre ja weiss aber man kann die Farbe der Konsole ja verändern. Es muss also nicht unbedingt immer weiss auf schwarz sein. Versteht ihr das Problem Oo? Wie kann ich das lösen?

Vielen Dank

Nimda05
 
Die Sequenz für RESET sollte "\033[0m" sein (zumindest auf meinem Terminal).

mfg, metax.
 
Hallo!
Ich wollt nur kurz fragen, ob farbige Konsolen standartmäßig bei Windows möglich sind. Ich musste mir dafür ne extra lib holen. Mit der >geht< es auch, aber es sind halt bloß 4 Farben möglich.

Wie funktioniert denn dieser
cout << \033[01;37m << endl;
Code?
 
Nun, ich kenne das Phänomen nur von Linux-Konsolen (k.a. ob es in Windows geht).
Jeden falls kann man einem Linux Terminal - falls das Programm diese Angaben verarbeitet - eine Textsequenz unterschieben, ab welcher die dargestellten Zeichen eben eine andere Farbe/Hintergrundfarbe/Dekoration haben.
Eingeleitet wird die Sequenz mit dem Ascii-Code 27 (entspricht Oktal 33 bzw. "\e"), dann mit dem Zeichen "[". Dann folgt ein Zahlenwert bzw. zwei Zahlenwerte getrennt mit ";", dann ein "m".

Z.B. (erst grün, dann "Hallo" dann zurücksetzen):
Code:
echo -e "\033[32mHallo\033[0m"
Wenn der Code allerdings nicht interpretiert wird (z.B. bei Umleitung in Datei), hast du dann aber leider diesen Zeichensalat dastehen ...

Z.B. hier gibts die Codes:
http://www.vias.org/linux-knowhow/lnag_05_05_04.html

mfg, metax.
 
Habs mit dem GDI Compiler von MVC++ 6.0 versucht. Klappt nicht. Den "echo" befehl kennt der Compiler nicht, oder er ist nicht in der Selben lib wie der cout befehl.
Der Zeichensalat wird bei cout (fast) so angezeigt.
\033 wird als Pfeil nach links interpretiert. ^^

Man sollte aber besser ne portable lib verwenden, damit der Quellcode unter beiden Systemen compiliert werden kann.
Kannst ja mal gucken, ob die auch mit gcc o.ä. compiliert werden kann:
http://www.codeproject.com/cpp/AddColorConsole.asp
btw: waren doch ein paar mehr farben xD
Damit sich keiner extra registrieren braucht, siehe Dateianhang.
Credits brauch ich ja nicht geben. Wenns sonst rechtlich nich ok ist, bescheid sagen.
 
Ups, "echo" war halt ein Linux Shell-Command.
Wenn du nach C++ Beispielen suchst, kannst du dir ja den Code von Nimda05 anschauen. Das macht im Grund nichts als die Bewusste Ausgabe auf den Ausgabestrom zu schreiben.

Wenn es allerdings unter Windows nicht läuft, wirst du vermutlich eine andere Technik statt den Unix-Escapesequenzen brauchen.
Damit kenne ich mich nicht aus.

Und zu deinen C++ Fragen kann ich auch nichts sagen, weil ich mich leider mit C++ auch nur marginal auskenne.

mfg, metax.
 
Zurück
Oben