Ich möchte die Antworten bisher gegeben klären, weil sie scheinen, Phrasen wie „EOF senden“, „erhielt EOF“, „EOF-Zeichen“ usw. Laut den Kommentaren (Danke) zu dieser Antwort, "sende EOF" und "empfangen EOF" sind legitime Begriffe, aber bitte denke nicht, dass es ein Charakter ist.
EOF ist kein überhaupt Charakter. Es ist der Wert, den getchar() (oder fgetc/getc) zurückgibt, wenn der Datenstrom am Ende der Datei liegt oder ein Lesefehler auftritt. Es ist lediglich ein spezieller Wert außerhalb des Bereichs der Zeichenwerte, den getchar() zurückgibt, der die -Bedingung des Fehlers oder Dateiendes anzeigt.
Es wird von dem C-Standard als negativ, während GetChar kehrt Zeichen als unsigned char in int umgewandelt definiert.
Edit: Auf einigen Recherchen, die ich vor dem Absatz getan haben sollte ich das hier verwendet geschrieben zu sein, ich habe einige meiner Annahmen realisiert völlig falsch waren. Danke an den Kommentator, der darauf hingewiesen hat.
Sobald ein Datenstrom (z. B. stdin) in der End-of-File-Bedingung ist, kann diese Bedingung mit clearerr() zurückgesetzt werden und getchar() kann mehr Daten von stdin lesen.
CTRL Z im DOS-Land – EvilTeach
Warum habe ich zwei Downvotes bekommen? –
FWIW, ich habe dich nicht abgelehnt. Es gibt jedoch kein EOF-Zeichen, das könnte der Grund sein. Wenn ein Benutzer^D (oder was auch immer) auf einem Terminal drückt, verursacht es eine EOF-Bedingung auf dem Prozess 'stdin' (es wird von der Shell geschlossen), es ist kein Charakter beteiligt. – Chris