Drucken der Wert von EOF
In Kernighan und Ritchie (die Programmiersprache C):
'Ein Programm zu schreiben, drucken Sie den Wert von EOF-Zeichen'
Schrieb ich:
#include <stdio.h>
main(){
int c;
c = getchar();
if ((c = getchar()) == EOF)
putchar(c);
}
aber es nicht ausgeben, nichts, Warum?
EOF
ist kein Charakter, daher putchar(EOF)
alles tun können. Was Sie wollen, ist printf("%d", EOF)
.InformationsquelleAutor bigTree | 2014-05-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
putchar-Funktion druckt ein Zeichen.
Aber EOF ist nicht ein Zeichen und zeigt das Ende einer Datei. Also die getchar gibt einen Wert zurück, das ist zu unterscheiden von dem Charakter setzt, um anzuzeigen, es ist nicht mehr input.
Also Druck-EOF-Zeichen mit putchar() kann nicht drucken Sie alle Werte
drucken es als integer
gibt Ergebnis -1
InformationsquelleAutor Sorcrer
putchar
bedeutet das für die Ausgabe der Zeichen entsprichtc
in der Zeichen-Codierung verwendet wird (in der Regel ASCII -). Es gibt kein Zeichen mit der CodierungEOF
(das ist der springende Punkt, derEOF
)."Der Wert von EOF" bedeutet nicht "drucken Sie das Zeichen, dessen code ist
EOF
".Anderes Beispiel: der Wert des Zeichens
A
65; Ihre Aufgabe ist es, auf drucken, um das äquivalent von65
aber fürEOF
anstatt fürA
. Alsoputchar
ist nicht der Weg zu gehen.InformationsquelleAutor M.M
versuchen Sie dies:
EOF
ist nicht druckbare Zeichen als erwartet.InformationsquelleAutor mitnk