Ändern des get Pointers bei ifstream mit seekg löst failbit aus
-
Hallo alle zusammen,
ich versuche mit der Funktion seekg an den Anfang der Datei zurückzuspringen nachdem ich das Ende erreicht habe. Wenn ich dann wieder die Datei lese, wird das failbit gesetzt. Kennt jemand das Problem? Oder hat jemand eine Idee woran das liegen könnte?
So mache ich es in etwa:
ifsream *fd; ... if (fd->eof()) { fd->seekg(0,ios::beg); //springe zurück an den Anfang des Files fd->clear(); //clear eofbit fd->good(); //dieser test ist ok .. //lese wieder ... fd->good(); //dieses test schlägt fehl ... }Hat jemand eine Lösung parat. Leider kenne ich an der Stelle nicht den Namen der Datei. Oder kann man den über den Zeiger rausbekommen. Dann könnte ich das File einfach schließen und wieder öffnen.
Danke für eure Hilfe
-
Juri_1 schrieb:
Leider kenne ich an der Stelle nicht den Namen der Datei.
Wie hast du sie dann öffnen können? Du hattest den Namen mit sicherheit schonmal irgendwann im Lauf des Programms...
-
Klar, aber ich müßte einiges ändern an der Klassenstruktur. Ich bekomme nur den Zeiger auf die Datei übergeben. Eigentlich sollte es doch so funktionieren. Es muss doch einen bestimmten Grund dafür geben, dass das failbit gesetzt wird.
-
Habe den Fehler an einer anderen Stelle gefunden.
Sorry