getline
-
hallo.
ich bin c++ anfaenger und mochte eine text datei parsen.
ich moechte die datei einlesen und pruefen ob die Zeile ein = Zeichen
enthaelt und alles hinter dem istgleich soll dann rausgenommen werden.
Wenn die Zeile mit einem [ beginnt soll eine andere funktion ausgefuehrt
werden. usw.Ich habe mir das so vorgestellt, dass immer eine Zeile mit getline gelesen
wird; die Zeile als string a gespeichert wird und ich dann mit diesm String
weiterarbeite.ifstream in("file.txt"); getline(in,a,'\n'); char ch = a[0]; if (ch=='[') { cout << "Beginng mit [" << endl; ....
das funktioniert wunderbar.(weiss allerdings nicht ob es
programmiertechnisch in ordnung ist)Aber wie gehe ich vor um die naechste Zeile einzulesen.
Ich wuerde gerne alle i Zeilen, zeilenweise einlesen und jede Zeile dann als
string speichern.vielleicht kann mir jemand von euch weiterhelfen.
gibt es eine gute dokumentation zu arbeiten mit strings bzw. getline.danke
lg
Michi
-
Bau Dir doch eine Schleife:
ifstream in("file.txt"); if(in.is_open()) { while(!in.eof()) { getline(in, a, '\n'); doSomething(); //hier kannst Du die eingelesene Zeile dann bearbeiten } }
-
danke.
stimmt so funktioniert es.
Warum bin ich da nicht selber drauf gekommen.wofuer ist eigentlich gut?
(in.is_open())
lg
michi
-
vielleicht um zu gucken, ob die Datei wirklich offen ist?!
Warum bin ich da nicht selber drauf gekommen.
-
Das prüft ob die Datei wirklich offen ist oder vielleicht ein Fehler aufgetreten ist.