textdatei fehler
-
int main() { ifstream source; vector<string> svec; string lines, str; string dataname ="Multistarter.txt"; source.open(dataname.c_str()); if (!source) { cerr << dataname << " not found\n"; exit(-1); } char c; while (source.get(c)) { if(c == '/n') { svec.push_back(lines); lines=""; } else { if(getline(cin,str)) { lines +=str; } } } for (vector<string>::size_type index = 0; index!=svec.size(); ++index) { cout << svec[index]<<endl; } }ich sehe meinen fehler nicht :/.
ich möchte eine textdatei einlesen und jede zeile seperat in einem string speichern der anschließend in einem vector gespeichert wird.aber irgentwie habe ich wohl einen runtime error, denn mein programm macht garnichts ;/,
ich hoffe ihr könnt mir helfen
danke
-
std::string line; std::vector<std::string> lines; while(std::getline(is, line)) lines.push_back(std::move(line));
-
Wo liest du ein und wo speicherst du das Eingelesene ab?

Aber abgesehen davon, warum nutzt du nicht gleich getline() zum Einlesen?Edit:
So wie Pi es macht..
-
Lies dir nochmals durch, was
std::getlinemacht.Und du solltest nicht
exitaufrufen.exitruft keine Destruktoren auf -> schlecht. Wenn du in dermainbist, mach doch einfach einreturn -1hin statt desexit(-1).Grüssli
-
oh gott bin ich verwirrt, das muss ich erstmal verdauen.
danke schonmal
aber move() habe ich noch nie gesehen und warum finde ich das nicht in der reference

-
Weils erst im 11er Standard kommt. VC++ und GCC können das aber bereits beide.
-
kantaki schrieb:
aber move() habe ich noch nie gesehen und warum finde ich das nicht in der reference

Das ist C++11 und der Pi ist da ganz groß. Lass es einfach weg.

Edit:
@Pi
Ja, weiß auch nicht was los ist heute.
-
Schon wieder zu langsam @cooky

-
oh gott bin ich doof. klar getline liest alles bis \n

while (getline(source,lines)) { svec.push_back(lines); lines=""; }funktioniert!

man hatte ich nen tunnelblick



-
Du brauchst der Zeile keinen Leerstring zuweisen...