003
02.03.2005, 17:18 Uhr
typecast
aka loddab (Operator)
|
Der Grund dafuer ist der, dass feof erst dann true zurueck gibt, nachdem du versucht hast ueber das ende der Datei herauszulesen.
Im letzten Schritt zeigt der Filepointer auf das Ende der Datei. feof gibt also 0 zurueck und es geht in die Schleife. Wenn dann jetzt fread aufgerufen wird, dann schlaegt die Leseoperation fehl. In aChar befindet sich dann das zuletzt gelesene Zeichen, dass dann nochmal in die Datei geschrieben wird.
Dann haette ich noch eine Anmerkung:
sieht ein wenig komisch aus (aber es ist nicht falsch )
Ich wuerde es so machen:
C++: |
char aChar; fread(&aChar,1,1,in); while (!feof(in)) { fwrite(&aChar,1,1,out); fread(&aChar,1,1,in); }
|
-- All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925) Dieser Post wurde am 02.03.2005 um 17:19 Uhr von typecast editiert. |