Die getchar()
Funktion gibt entweder den numerischen Wert des Zeichens, das gerade eingegeben wurde (als unsigned char
behandelt, so dass es nie negativ), oder der besondere Wert EOF
, die anzeigt, dass es nicht mehr eingegeben wird.
Windows verwendet Control-Z zum Triggern und zum Ende der Datei, wodurch getchar()
den Wert EOF
zurückgibt. Aber EOF
ist kein Zeichenwert; Es wurde speziell ausgewählt, um ein Wert zu sein, der kein Zeichenwert sein kann.
End-of-File ist eine Bedingung, kein Wert. EOF
ist ein numerischer Wert, aber kein Zeichenwert; Es ist der Wert, der von getchar()
zurückgegeben wird, um anzuzeigen, dass sich die Eingabe in einem Dateiende-Zustand (oder einem Fehlerzustand) befindet.
(Wenn Sie ganzzahlige Werte lesen wollen, positiv oder negativ, benötigen Sie ein einzelnes Zeichen in einer Zeit, zu lesen und dann den Integer-Wert berechnen, dass die Zeichenfolge dar. Der Integer-Wert -1
kann als Zeichen '-'
eingegeben wird gefolgt von dem Zeichen '1'
. C hat verschiedene Funktionen, wie atoi
und die *scanf
Familie, die diese Umwandlung tun kann.)
Sie meinen "-1" als Text eingeben, was zwei Zeichen ergibt, ein ''-' 'und ein' '1''? –
@StephanLechner Ja, das ist es. –
Verwenden Sie 'atoi()' (oder 'atof()' für float) aus dem 'libmath' – YaatSuka