Datei lesen, problem
-
Hi@all,
ich lese mit folgendem Code eine Datei aus:
ifstream inFile; inFile.seekg(0, ios::end); const int nLen = inFile.tellg(); inFile.seekg(0, ios::beg); char* buffer = new char[nLen]; inFile.read(buffer,nLen); cout << buffer; inFile.close();
Nun bekomme ich aber bei der Ausgabe von "buffer" noch "²²²²" mit ausgegeben.
Wenn ichchar* buffer = new char[nLen-4];
mache, dann bekomme ich den ganzen Inhalt komplett angezeigt.
Warum?
Jemand ne Ahnung?Vielen Dank.
Gruß
Gast
-
Es fehlt vermutlich das \0 am ende (also der Speicher ist zufällig gefüllt)
-
Hi @all,
kann ich denn nun davon ausgehen, dass [nLen-4] bei jeder Textdatei funktioniert, oder ist das eigentlich falsch.
Muss ich irgendwie eine abschließende "\0" anfügen?Vielen dank.
-
Bei der Ausgabe ist Länge der Datei = 26 (das Alphabet) und die Länge des Buffers ist 30 (also meine 4 mehr).
Aber warum, ich deklariere doch mit der Länge des Dateiinhaltes.
Vielen dank.