Funktion fgets newline oder newline und wagenrücklauf
-
Hallo,
weiß hier jemand wie genau die Funktion "fgets" funktioniert? Und zwar geht es mir um folgendes: Eine TextDatei kann ja am Ende einer Zeile mit \n oder, alternativ, \n\r abgeschlossen werden.
Erkennt fgets beides als Zeilenende? Und was wäre, wenn eine Datei nicht einheitlich ist? Also teilweise mit \n und teilweise mit \n\r abgeschlossen wird?
Danke schon mal im Voraus.
-
fgets liest nur bis \n bzw. EOF, egal welche Zeichen davor stehen (vorausgesetzt, es gibt so viel Platz im Buffer dafuer)
fgets() reads in at most one less than size characters from stream and stores them into the buffer pointed to by s. Reading stops after an EOF or a newline. If a newline is read, it is stored into the buffer. A '\0' is
stored after the last character in the buffer.
-
Newline ist systemabhängig, bei den Pungos ist es "\n", bei Windoof "\r\n".
Paßt sich der Platform an (zumindest mein Compiler).
-
Der Compiler passt sich nicht, alle IO-Routinen mit f am Anfang sollten sich in jedem System gleich verhalten, d.h. wenn man die Datei mit fopen geoeffnet hat oder einen standard stream verwendet kann es dir egal sein wie zeilenumbrüche oder dateiende oder ähnliches kodiert ist. Eine Außnahmen stellen die Modi mit "b" dar, oeffnet man eine Datei damit, bekommst du den Bytestream so wie er ist.
mfg
<<<>>>