Programm stoppt bei if-Abfrage in while-Schleife
-
Hallo,
ich habe folgen denen Code:
std::ifstream Datei; std::string Line; Datei.open("C://bla.txt", std::ios::in); while(!Datei.eof()) { getline(Datei,Line); if(Line.find("asd") != std::string::npos) // hier wills nicht mehr { // ... // Am Inhalt hier kann es nicht liegen! } }Das Problem ist, dass das Programm hängt, sprich es geht nicht mehr weiter. Ich kann es nur noch über den Task-Manager beenden.
Danke schon mal!
-
1. cpp-tags sind viel schöner als code-tags
2. einrücken wär auch toll
3. was steht denn in der datei?
4. so was kann man eigtl immer wunderbar über den debugger (haltepunkte setzen) rausbekommen
5. poste doch mal bitte ein minimal-bsp, was sich compilieren lässt(mit der textdatei am besten)
6. schreib malC:/bla.txtoderC:\\bla.txt
7. es wird am abfragen deseof-bits liegen, aber kein Plan, wieso das nicht gesetzt wird... mir fallen spontan auch nicht all zu viele Probleme ein, wo man es wirklich braucht(eigtl gar keins^^)ich würds so in etwa machen:
std::ifstream Datei("C:/bla.txt", std::ios::in); for(std::string Line; std::getline(Datei, Line); ) { const std::string::size_type pos = Line.find("asd"); if(pos == std::string::npos) continue; /* ... */ }bb
-
@unskilled @logged-off : Danke, Problem gelöst!
Hab da jetzt mal eine andere Frage (will keinen extra Thread aufmachen): Wie kann ich überprüfen, ob der Vector an einer bestimmten Stelle (z. B. Vector[10]) gefüllt ist?
-
std::vector::size gibt dir die Grösse zurück und wenn die Stelle, die du überprüfen möchtest < als size ist, dann gibts sies und sonst nicht.