Klasse mit Stream kommunizieren lassen
-
Hallo,
ich habe irgendeine Klasse.
Diese klasse soll mit Ein- und Ausgabestreams kommunizieren.
Also etwa so:MyClass MyClassObject; cout << MyClassObject << endl;
geht das irgendwie?
-
...
-
ja.
ostream& operator<<(ostream& AusgStrom,MyClass const& Object) { AusgStrom<<Object.Attr1; AusgStrom<<Object.Attr2; return AusgStrom; }
-
volkard schrieb:
ja.
ostream& operator<<(ostream& AusgStrom,MyClass const& Object) { AusgStrom<<Object.Attr1; AusgStrom<<Object.Attr2; return AusgStrom; }
recht herzlichen dank
-
hi ich bins nochmal,
funktioniert das auch mit istreams?
-
gibt nen tollen artikel über operatorenüberladung - und ja, es geht - dort sollte auch stehen, wie genau...
da:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-232010.htmlbb
-
super
danke
-
jetzt bin ichs also ein drittes mal
Wie kann ich verhindern, dass der istream ein leerzeichen als trennzeichen betrachtet?
-
Auch noch interessante Lektüre:
http://magazin.c-plusplus.net/artikel/Ein- und Ausgabe in CPlusPlus - IO-StreamsUnd zudem könnte das wohl auch noch helfen:
http://www.cplusplus.com/reference/iostream/manipulators/noskipws.htmlGrüssli
-
skipws
undnoskipws
funktionieren nicht für mein Problem.Bei mir werden Namen eingegeben (über
cin
)
Vor- und Nachnamen werden üblicherweise per Leerzeichen getrennt.Mit
noskipws
wird trotzdem nur der erste "Teil" des Namens übernommen
-
Dann lies zuerst den Vornamen und danach den Nachnamen ein, in getrennten Schritten. Würde ich persönlich am sinnvollsten finden.
Oder du machst es gleich so:
http://www.cplusplus.com/reference/string/getline.htmlDas kannst du auch mit den einzelnen Schritten verwenden
Grüssli
-
danke
mitstd::getline()
geht's wunderbar *freu*