?
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.8
Damit ihr auch probieren könnt.