ostream problem
-
Hallo Leute,
eine Kollegin von mir hat ein C++ Problem und mich um Hilfe gefragt, aber ich find den Fehler auch nicht.
Es ist folgendes:
ostream o; o << setfill('x'); o << setw(10) << "77"; cout << o << endl;Wenn ich das mit gcc compiliere bekomme ich folgende Meldung:
/usr/include/c++/4.1.2/ostream: In function 'int main()': /usr/include/c++/4.1.2/ostream:341: error: 'std::basic_ostream<_CharT, _Traits>::basic_ostream() [with _CharT = char, _Traits = std::char_traits<char>]' is protected test.cpp:8: error: within this contextDanke schon mal im vorraus.
Mfg Cpt.Hawk
-
Was soll denn der Code bewirken? Wenn du eine formatierte Ausgabe erzeugen willst setze doch bitt die Formatierungsflags für cout und nicht für diesen ostream. Es gibt eben keinen operator<< zur Ausgabe von Streams. Alternativ wäre wohl auch die Verwendung eines stringstreams möglich.
stringstream o; o << setfill('x'); o << setw(10) << "77"; cout << o.str() << endl; // str gibt ein std::string zurück
-
Das ursächliche Problem ist, dass Du kein Objekt eines Outputstreams erzeugen kannst. Wohin sollte der auch ausgeben? Du kannst nur ein Objekte eines Outputfilestreams oder eines Outputstringstreams etc. erzeugen.
Letzterer heisst std::ostringstream und findet sich in <sstream>
-
Hier die passende Referenz dazu:
http://www.cplusplus.com/reference/iostream/ostream/ostream.html
-
vielen dank, damit komm ich weiter