Merkwürdiges Problem mit getline
-
Hiho!
Ich wollte mit Hilfe der Funktion getline 2 Textstellen aus einer Datei auslesen und in einen Speicher kopieren. Hier der Code:
#include <fstream> #include <iostream> using namespace std; int main() { ifstream logfile("text.txt"); char buffer[99]; //gehen auch kleiner ich weiß :clown: char buffer2[99]; //Spring zum 10. Zeichen, lese 21 Zeichen aus und schreibe sie in Buffer logfile.seekg(10); logfile.getline(buffer, 21); logfile.close(); ifstream logfile1("text.txt"); //Spring zum 38. Zeichen, lese 19 Zeichen aus und schreibe sie in Buffer logfile1.seekg(38); logfile1.getline(buffer2, 19); logfile1.close(); cout<<buffer<<endl; cout<<buffer2<<endl; return(0); }
So funktioniert auch alles, allerdings muss ich das selbe File einmal schließen und wieder öffnen
Mache ich das hingegen so:
#include <fstream> #include <iostream> using namespace std; int main() { ifstream logfile("text.txt"); char buffer[99]; //gehen auch kleiner ich weiß :clown: char buffer2[99]; //Spring zum 10. Zeichen, lese 21 Zeichen aus und schreibe sie in Buffer logfile.seekg(10); logfile.getline(buffer, 21); // logfile.close(); // ifstream logfile1("text.txt"); //Spring zum 38. Zeichen, lese 19 Zeichen aus und schreibe sie in Buffer logfile.seekg(38); logfile.getline(buffer2, 19); logfile.close(); cout<<buffer<<endl; cout<<buffer2<<endl; return(0); }
ist nur die erste getlinefunktion erfolgreich, die zweite liest gar nix aus
, kommentiere ich die erste getlinefunktion aus funktioniert die zweite wieder
.
Woran liegt das?
Hier der Inhalt der Datei"PID: 0172 Number of events: 45"
"Start Day, Time:", "WE", 23,07,51.8Damit ihr auch probieren könnt.