probleme mit vector
-
hi leute
ich will von einer datei die zeilen auslesen und in einem vector abspeichern, aber aus irgend einem grund speichert er immer nur die letzte zeile, kann mir schon denken woran es liegt, aber find den fehler nicht
vector<char *> myVec; char zeile[1024]; while( !indat.eof() ) { indat.getline(zeile, sizeof(zeile)); myVec.push_back(zeile); } cout<<"Element: "<<myVec.at(2)<<endl;
weiß einer von euch woran es liegen kann bzw. wie man es besser macht?
mfg;
-
Du speicherst im vector zeiger auf immer den selben char [] puffer. Nimm std::string.
std::vectorstd::string
-
hab ich mir fast gedacht.
gibt es trotzdem eine möglichkeit, das mit char's zu realisieren?
mfg;
-
Ja, es gibt sie. Jedesmal einen neuen Puffer allozieren. Das macht aber std::string intern für dich in der Summe sicherer und schneller. Es gibt keinen Grund es nicht zu verwenden.
-
ok, thx
ich glaub jetzt funktioniert es eh einwandfrei
mfg;