istream operator ueberladen
-
Hallo zusammen
ich brauche fuer meine Point Klasse einen operator>>
Ich habe die Dimensionen meines Punktes vorher so ausgelesen:ostream& operator<<(ostream& out, PointN p) { int iDim = p.getDim(); for(int i = 0; i < iDim; i++) { out << p[i]; } return out; }Das moechte ich jetzt gerne wieder umdrehen und die Werte die jetzt in einem file stehen wieder in meinen Punkt schreiben. Wie mache ich das?
Bzw brauche ich sowas:
istream_iterator<PointN> pos1; //pos1 zeigt auf den Beginn meiner BufferzeileDanke fuer eure Hilfe!
-
Du brauchst zuerst einen passenden Operator:
istream& operator>>(istream& sin,PointN& val); { //lies die Elemente des Punkts ein return sin; }Damit kannst du dann Punkte z.B. per "cin>>pkt;" einlesen.
Um das ganze mit copy zu kombinieren, verwendest du:
copy(istream_iterator<PointN>(file),istream_iterator<PointN>(),back_inserter(liste)); // ^Iterator auf File ^Ende-Iterator ^Inserter (hängt ans Ende der Liste an)