Problem beim Datei auslesen
-
@bassmaster sagte in Problem beim Datei auslesen:
Mit unsigned char* funktioniert es jetzt.
Darauf wollte ich nicht hinaus. Es ist nur so, daß
fread()
intern den gegebenen Buffer alsunsigned char*
interpretiert. Nicht mehr und nicht weniger. Übergeben kannst Du fast alles, was Dir lustig ist.@bassmaster sagte in Problem beim Datei auslesen:
Wenn ich jedoch einen Zeilenumbruch in meiner Datei habe dann werden mir 2 Bytes mehr ausgegeben.
Zeig Code.
-
@bassmaster sagte in Problem beim Datei auslesen:
Wenn ich jedoch einen Zeilenumbruch in meiner Datei habe dann werden mir 2 Bytes mehr ausgegeben
Unter Windows besteht der Zeilenumbruch aus zwei Zeichen
'\r' für carriage return (Wagenrücklauf) und
'\n' für new line (Zeilenvorschub)Die werden vom System, beim lesen im Textmodus, zu einem einzelnen '\n' gewandelt.
Bei der Ausgabe sind diese Zeichen nur durch ihre Wirkung zu sehen.
Wenn du beiprintf("buf: <%s>\n",buf);
z.B folgende Ausgabe bekommst:<ABCD >
Dann ist hinter dem D ein
\n
Den Textmodus bekommst du beim
fopen
mit dem Modus"r"
.
Mit"rb"
bekommst du den binary-Modus. Da erfolgt keine Wandlung der Steuerzeichen.