getc(file) überliest (char)13 ...
-
Mit einem Editor, der unformatierten Text verarbeitet, habe ich drei Zeilen
geschrieben und in einer Datei abgespeichert. Dann implementierte ich ein
Programm, das die Datei Zeichen für Zeichen mit getc(file) liest, und den
ASSCI Code auf dem Bildschirm ausgibt. Die Datei enthält für jede Zeile, Zeichen und abschliessend zwei Steuerungs-Zeichen (char)13 und (char)10. Dabei wird aber (char)13 überlesen, und nur (char)10 ausgegeben.
Übrigens, der Name GeorgC++ ist ein Fantasie-Namen, und heisst nicht,
dass hier eine Variable namens GeorgC inkrementiert wird.Weiss jemand Rat ?
-
Weil Du die Datei im Text-Mode öffnest und nicht binär:
CStdioFile::typeText
http://msdn.microsoft.com/en-us/library/cz0a83sb(VS.80).aspx
-
Das heisst, wenn ich eine Text-Datei mit file = fopen(<Dateiname>, "r");
öffne, weiss das System, ob hier eine Text oder Binary Datei vorliegt.
-
Nö. Aber Du bestimmst selbst den Mode t oder b... Das System benutzt den default. Lies doch die Doku:
http://msdn.microsoft.com/en-us/library/yeby3zcb(VS.71).aspx
-
Folgendes: Ich habe mit C# und der Klasse BinaryWriter eine Binär-Datei
erzeugt.
...
BinaryWriter bw ....
...
short i = 0x0d0d;
...
bw.Write(i);
....
Sie enthält zwei (char)13 Bytes.Mit dem obigen Programm,
...
FILE* file;
file = fopen(<Dateinamen>, "r");
...
getc(file);wurden die (char)13 Bytes nicht überlesen. Nanu ...
-
Dann öffne die Datei mit fopen(...,"rb").
Warum liest Du nicht die MSDN Doku?
Da steht das Verhalten doch beschrieben...