[Win32 Console] [Cpp] [IC] Mehrere Farben in einer cout<< Ausgabe, wie geht es besser?
-
chrische5 schrieb:
Hallo
Hallo, hab mich extra wegen dieser Frage hier angemeldet.
Das geht auch unregistriert.
chrische
Wusste ich nicht, aber mir ist es so trotzdem lieber..
Ich mag diese unangemeldet antworten nicht, da ist es mir lieber einen
Nick zu haben.Zumal ich wahrscheinlich in naher Zukunft noch ein paar Fragen habe,
auch ein Grund sich gleich anzumelden ^^.Mit freundlichen Grüßen
FlorianEdit: Überlesen...
@SideWinder
Sowas wäre ideal ^^.
Man darf sich nicht einreden lassen, wo hat das denn sonst etwas zu suchen?
Was soll den Farbig werden, was soll den an bestimmte Koordinaten gesetzt werden?!
Der Text!
Also wäre es für mich auch das logischte (richtig geschrieben?) es da einzubauen.
Mein kleines Statement ;-), nicht zu ernst nehmen.
-
vieles dank geiles tool echt toll.
danke danke
greeetz
blade
-
hallo zusammen!
tobZel, vielen dank für die Lib, echt klasse
lg
-
Mahlzeit!
Ich versuche gerade, so etwas ähnliches wie das von tobZel so machen. Allerdings sind es insgesamt nur zwei Funktionen, eine für Textfarbe und eine für Hintergrundfarbe, bei der die Farbwerte als Parameter übergeben werden. Also zB
cout << fcol(FG_RED) << "Red" << fcol(FG_WHITE) << " vs. " << fcol(FG_BLUE) "Blue\n";
Ich hab allerdings keinen blassen Dunst, wie die Deklaration von fcol() aussehen muß damit ich den Farbwert übergeben kann.
Danke.
-
Das kriegst du vermutlich nicht als Funktion hin (außer du wandelst den Farbwert in eine Escape-Sequenz um), sondern eher als Objekt (Stream-Manipulator):
class fcol { int m_col; public: fcol(int color) : m_col(color) {} friend ostream& operator<<(ostream& out, const fcol& op) { //setze Farbe op.m_color im Stream out return out; } };
-
Ja, ich meinte eigentlich auch nicht eine herkömmliche Funktion sondern - wie du richtig sagst - einen stream. Ich dachte mir, man kann das genau so lösen, wie es Sidewinder gemacht hat:
SideWinder schrieb:
Kann man eigentlich auch in die IC einbauen, hatte ich sogar mal vor afaik. Mir wurde das dann aber ausgeredet weil irgendjemand meinte, solche Farbinformationen hätten im Stream nichts zu suchen
Sogar ein:
cout << xy(4,5) << green << "Hello World";
war bereits möglich.
MfG SideWinder
Ich hab dein Beispiel übernommen, erhalte aber zwei Fehlermeldungen in der Zeile
friend ostream& operator<<(ostream& out, const fcol& op)
error: ISO C++ forbids declaration of
ostream' with no type error:
ostream is neither function nor member function; cannot be declared as friend
-
Da brauchst du erstens den richtigen Header (<ostream> oder <ios_fwd>) und zweitens vermutlich ein std::ostream&, damit der Compiler das erkennt.
(wenn jemand sich an so "große" Probleme ranwagt, sollte er eigentlich die Grundlagen von C++ verstanden haben)
-
CStoll schrieb:
Da brauchst du erstens den richtigen Header (<ostream> oder <ios_fwd>) und zweitens vermutlich ein std::ostream&, damit der Compiler das erkennt.
(wenn jemand sich an so "große" Probleme ranwagt, sollte er eigentlich die Grundlagen von C++ verstanden haben)
Peinlich, peinlich...
Ich hatte den Teil ursprünglich in einer einer Quelldatei, die <iostream> inkludierte, hab den Teil aber in eine neue Quelldatei geschoben und nicht gemerkt, dass #include <iostream> fehlte. Ist mir um die Burg nicht aufgefallen...
Danke.
-
Sorry das ich den Thread ausgrabe, aber ich habe ein Problem mit der angebotnen colors.h . Wenn ich sie mit einbinde Spuckt mir der Compiler 66 Feher aus mit der Begründung "error C2872: 'ostream' : Mehrdeutiges Symbol".
Die Fehler entstehen erst, wenn ich die colors.h include
Da ich gerade erst angefangen habe zu programmieren, stellt sowas für mich ein unlösbares Problem dar.
Hoffe auf Hilfe.
-
tobZel schrieb:
Vor nem Jahr hab ich mal diese kleine header Datei aus langeweile geschrieben
http://www.tobzel.de/Download/colors.rar
Sollte genau das sein was du suchstmfg tobZel
heho ^^ ich will das auch machen, also farben in der console verwenden....bloss weis ich nicht, was ich damit anfangen soll...also mit den 2 textdatein.
Wäre richtig n1ce, wenn mich jemand aufklären würde....THX
________________________
mfG Hausmeister