Wrapper für std::cout?
-
Hi,
ich brauche (und bitte fragt nicht wozu :() vor meiner Ausgabe ein konstantes Zeichen. Ich habe mir überlegt, das eine Art "Wrapper" ganz von Nutzen sein könnte.
Im Prinzip mag ich das hier in meinem Programm stehen haben:
using namespace std; cout << "bla" << endl; cout << "blu" << endl;Und das würde ich wirklich gerne ausgegeben bekomm:
:bla :bluHabe leider von Vererbung und Überladen keine grosse Ahnung

Schaue mir seit vielleicht 3 Monaten jetzt C++ an...Danke!!

-
Musst du nur mit Stringliteralen fertig werden? Dann könntest du einfach so eine Funktion schreiben:
void Output(const char* str) { std::cout << ':' << str << '\n'; }Sonst wird das Ganze etwas komplizierter, du müsstest dazu den Anfang einer Ausgabe noch sinnvoll definieren können.
-
Eine Funktion dazu zu schreiben, ist mir auch in den Sinn gekommen. Aber damit würde ich ja so viele Vorteile, die ich hätte, würde ich cout benützen, aufgaben...

Dann wollte ich eine Klasse dazu schreiben... ich dachte aber, dass ich evtl. das Rad nur für dieses eine Zeichen nicht unbedingt neu erfinden müsste.
Sieht aber wohl so aus...?
-
Ich meinte natürlich aufgeben, nicht "aufgaben"

-
Es kommt mir vor als wärest du betrunken. Nimm einfach die Funktion von Nexus, ist das einfachste.
EDIT: Welche Vorteile von std::cout meinst du genau?
-
Das sollte mit Boost::Iostreams ganz einfach sein:
#include <boost/iostreams/filter/line.hpp> #include <boost/iostreams/filtering_stream.hpp> #include <iostream> #include <string> namespace io = boost::iostreams; class mach_doppelpunkt_davor : public io::line_filter { private: std::string do_filter(const std::string& line) { std::string kopie = ":"; kopie += line; return kopie; } }; int main() { io::filtering_ostream out; out.push(mach_doppelpunkt_davor()); out.push(std::cout); out << "bla" << std::endl; out << "blu" << std::endl; }