Programme mit EOF funktionieren nicht.
-
Mich würde in diesem Zusammenhang noch Folgendes interessieren:
Mit
#include <stdio.h> main() { printf("%d \n", EOF); }
kann ich mir ja einfach den Wert von EOF ausgeben lassen. Unter Visual Studio (Windows-Konsole) erscheint bei mir der Wert -1.
In der <stdio.h> steht#define EOF (-1)
Trotzdem beendet man das Programm aber nicht, wenn ich -1 eingebe, sondern z.B. F6 oder Ctrl+Z. Irgendwie verwirrt mich das, was bedeutet dieses (-1) bei EOF ? Ist das ein numerischer Wert, oder ein String, oder ... ???
Vielen Dank für jeden Rat und Tipp,
Meyoto
-
EOF ist kein Wert, den man 'so einfach' eingeben kann. Der wird intern von den Eingabefunktionen verwendet, um zu sagen "sorry, ich hab' nichts, was ich dir geben kann".
(und der Wert -1 ist auch der Grund, warum getc() keinen char zurückgibt, sondern einen int - von EOF ist garantiert, daß es außerhalb der Wertebereiches von char liegt, um es von jeder legal möglichen Eingabe unterscheiden zu können)
-
Alles klar, danke schön !!