/ * fgets: get at most n chars from iop */
char * fgets(char * s, int n, FILE * iop)
{
register int c;
register char * cs;
cs = s;
while (-n > 0 && (c = getc(iop)) != EOF)
if ((* cs++ = c) == ′\n′)
break;
*cs = ′\0′;
return (c == EOF && cs == s) ? NULL : s;
}
bitte meine Frage ist, warum cs == s, in der Rückkehr Aussage. da fgets NULL zurückgeben soll, wenn das Ende der Datei oder ein Fehler aufgetreten ist, warum gibt die Rückgabeanweisung nicht einfach zurück (c == EOF)? NULL: s;fgets c standardbibliothek funktion
getc, ist auch eine c-Standard-Bibliotheksfunktion, die ein Zeichen aus der Datei iop gleichzeitig liest. Die Funktion fgets liest eine Zeile aus der Datei, auf die iop zeigt, und gibt, falls erfolgreich, die Zeile aus, die im Zeichenfeld s gespeichert ist. NULL zurück, wenn das Ende der Datei angetroffen wird, oder Fehler aufgetreten
prost
getc, ist auch eine c-Standard-Bibliotheksfunktion, die ein Zeichen aus der Datei iop gleichzeitig liest. Die Funktion fgets liest eine Zeile aus der Datei, auf die iop zeigt, und gibt, falls erfolgreich, die Zeile aus, die im Zeichenfeld s gespeichert ist. gibt NULL zurück, wenn das Ende der Datei angetroffen wird oder ein Fehler aufgetreten ist – Evan