S
Lazarus schrieb:
Hallo es geht um die Funktion fgets. Ich habe nun nach einigen etwas komischen Forumlierungen endlich herausgefunden daß fgets das abschließende \n in der Zeichenkette mit ablegt wenn man über die Standardeingabe einliest.
Das ist richtig so. Wieso sollte es denn anders sein? Dass \n mitgelesen wird, hat den Vorteil, dass wenn die Zeile länger ist (in deinem Bsp) 80 Zeichen lang, dann kann man merken, ob man die gesamte Zeile gelesen hat.
char *fgets(char *s, int n, FILE *stream);
fgets liest die erste n-1 Zeichen, wenn aber in den ersten n-1 Zeiche ein \n vorkommt, dann ist die Zeile am Ende und deswegen bricht fgets ab.
Deinem Beispiel nach, sollte fgets das \n lesen, aber das \n ist das 80. Zeichen, also nicht mehr im Bereich (fgets liest die erste 79 Zeichen). Wieso soll dann fegts das \n nicht lesen?
Und noch was: die IDE hat mit fegts nichts zu tun.