Datei-Zugriff: Wahlfreier Zugriff (Spezielle Problemstellungen)

Ermittlung der Anzahl der Bytes einer Datei (5/5)

Schauen wir uns jedoch die Datei an, so stellen wir fest, daß der Abschlußzähler für die Anzahl der Bytes zwar auf dem Monitor ausgegeben wird, nicht jedoch in die Datei geschrieben wird, d.h. die Anweisung

  datei << zaehler << endl;

wird gar nicht mehr ausgeführt.

Dies liegt daran, daß sich unser fstream nach dem Einlesen von EOF in dem Zustand Dateiende befindet, was einem fehlerhaften Zustand gleichkommt insofern, daß auf diesem Stream dann keine Ein- bzw. Ausgaben mehr möglich sind.
Um diesen Fehler zu beheben, ist es daher erforderlich, den Stream wieder in einen gesunden Zustand zu befördern. Dieses ist, wie wir bereits gelernt haben, durch die Anweisung

  datei.clear();

möglich.

So, nachdem wir alle erforderlichen Modifikationen im einzelnen erläutert haben, findet man im Anhang die komplette(richtige) Version unseres kleines Beispielprogramms .