ifstream: Die letzten X Zeichen einer Datei einlesen
-
Hallo,
ich möchte die letzten paar Zeichen einer Datei mit ifstream einlesen. Mein bisheriger Code:
ifstream f; char* fileBuf; fileBuf = new char [101]; f.open(fileName,ios::in ); if(f) { f.seekg(fileSize - 100,ios::beg); f.read(fileBuf,100); f.close(); cout << (string)fileBuf << endl; [...]Die Variable fileSize ist eine const unsigned int und wird als Parameter an die Funktion übergeben. Ich bekomme allerdings nur "

=" ausgegeben (ohne Quotes).
Woran liegt das und wie könnte man das Problem lösen?P.S.: Ja, ich weiß, man könnte Zeile 7 durch f.seekg(-100,ios::end); ersetzen

//edit: Verwendete IDE ist Code::Blocks und Compiler MinGW
-
Was soll das hässliches sein?
cout << (string)fileBuf << endl;Du sagt dem Kompiler dass in diesem fileBuf ein std::string Objekt liegt, was aber schlicht und einfach nicht die Wahrheit ist. Dadurch erzeugst du undefiniertes Verhalten. Wieso machst du nicht sowas?
cout.write(fileBuf, 100); cout << std::endl;Grüssli
-
OK, vielen Dank. Das Script läuft jetzt