fstream fehler?
-
Hey,
ich habe ein Problem mit einem fstream. Ich möchte den Inhalt einer Datei in einen stringstream packen. Dies klappt so aber leider nicht:fstream fHash("D:\\hash.txt", ios::in); if(fHash.is_open()) { stringstream ssHash; while(!fHash.eof()) { char ac[2]; fHash.read(ac, 1); ac[1]='\0'; ssHash << ac; } fHash.close(); }Aus irgendeinem Grund, den ich nicht verstehen kann, wir immer ein char zu viel ausgelesen. (Dateigröße ist 2048 bytes, 2049 zeichen sind dann bei dieser Version am Ende im stream...)
Diese Version klappt aber ohne Probleme.
fstream fHash("D:\\hash.txt", ios::in); if(fHash.is_open()) { stringstream ssHash; char ac[2]; ac[1]='\0'; while(fHash.read(ac, 1)) { ssHash << ac; } fHash.close(); }Wo ist mein Fehler?
-
eof() liefert erst dann true, wenn read schon einmal fehlgeschlagen ist.
Edit: 3000!
-
Und all' die Jahre nehm ich eof() und habe nichts gemerkt

Egal, danke
cya
-