Beendet fgets() den Zeichenpuffer immer mit \ 0, auch wenn EOF bereits erreicht ist? Es sieht so aus als ob es (tut es sicherlich in der im ANSI K & R Buch präsentierten Implementierung), aber ich dachte, ich würde fragen, um sicher zu sein.Beendet fgets() den Zeichenpuffer immer mit 0?
Ich denke, diese Frage gilt für andere ähnliche Funktionen wie gets().
EDIT: Ich weiß, dass \ 0 ist bei "normalen" Umständen angefügt, meine Frage zielt auf EOF oder Fehlerbedingungen. Zum Beispiel:
FILE *fp;
char b[128];
/* ... */
if (feof(fp)) {
/* is \0 appended after EACH of these calls? */
fgets(b, 128, fp);
fgets(b, 128, fp);
fgets(b, 128, fp);
}
immer den Rückgabewert von 'fgets überprüfen()': 'if (fgets (...) == NULL)/* unbestimmtem Array * /;' – pmg
können Sie richtig sein, aber, Ich sehe, dass es andere Antworten gibt, die angeben, dass "\ 0" immer angehängt wird, selbst wenn 'fgets()' 'NULL' zurückgibt. – Ree