Probleme mit Vector
-
Hi Leute
ich bin gerade mit meinem Parser beschäftigt und hab jetzt probleme mit dem Parsen der Zeilen im Vector:std::string set::read(std::string var) { std::vector<std::string>::iterator i; std::string out, str, buf; switch(load_mod) { case 0: if(data.empty()) { break; } for(i = data.begin(); i != data.end(); i++) { str=parse(var, *i); cout << *i <<endl; //return str; Gibt alle Zeilen von *i aus. return str; //Gibt nur die ersten 2 Zeilen von *i aus. } break; case 1: if(!set_.good()) { break; } while(!set_.eof()) { getline(set_, buf); str=parse(var, buf); } return str; set_.close(); break; } return str; }In case 0 ist das Problem das er mir nur die ersten 2 Zeilen meiner Datei ausgibt wenn ich dort return machen, wenn ich das return in case 0 weg lasse dann gibt er alle Zeilen aus aber parst nur die letzte davon.
Am Parser selber und am laden der Datei in den Vector liegt es auch nicht.Gruß,
Gamebuntu
-
Deine for Schleife wird nur einmal durchlaufen, wenn du am Ende ein return stehen hast.
-
Was soll denn überhaupt das 'return' dort? Damit beendest du doch die aktuelle Funktion...
Du solltest dir noch mal selber genau überlegen, was du machen (parsen) willst - die bisherige Funktion ergibt jedenfalls keinen richtigen Sinn.
Also konkret: was soll der Rückgabewert dieser Funktion sein?
-
gamebuntu schrieb:
parst nur die letzte davon.
Woraus schließt du das?
-
Ha hab den Fehler gefunden hab vergessen den String zu überprüfen.
