Ich habe ein C-Programm.
int main ()
{
if (getchar()!=EOF)
puts("Got a character");
else
puts("EOF");
}
Was muss ich in die Standardeingabe auf dem Terminal eingeben, um ein EOF zu erzeugen?
Benutzer1593308
Ich habe ein C-Programm.
int main ()
{
if (getchar()!=EOF)
puts("Got a character");
else
puts("EOF");
}
Was muss ich in die Standardeingabe auf dem Terminal eingeben, um ein EOF zu erzeugen?
entspannen
Unter Windows, Strg+Z ist die typische Tastenkombination für “Ende der Datei”, in Linux und Unix ist es typisch Strg+D.
Sir, ich möchte den ganzzahligen Wert von EOF in C drucken, wie kann ich das tun?
– Benutzer1593308
15. August 2012 um 11:49 Uhr
Der ganzzahlige Wert von EOF in C ist ein Wert <0, also setzen Sie Ihre Variable gleich getchar() und drucken Sie sie dann beim Lesen von EOF aus
– Benutzer2494770
16. Oktober 2013 um 1:08 Uhr
Leider ist dies der erste Google-Treffer für “Tastenkombination für das Dateiende”.
– Tobi Wilson
31. März 2020 um 13:02 Uhr
@ user1593308 Mach es einfach printf("EOF=%d\n", EOF);
der Wert muss nicht abgerufen werden getchar()
verwenden Sie einfach das Makro direkt.
– abschalten
31. März 2020 um 13:31 Uhr
Lelanthran
Um den Wert von EOF auf Ihrer Plattform zu bestimmen, können Sie es immer einfach ausdrucken:
printf ("%i\n", EOF);
printf("%i", EOF)
Drucke -1
Anstatt von Control+D
– KMC
5. April 2013 um 9:54 Uhr
@KMC – erlauben Sie mir zu klären. Dabei: printf (“%i\n”, ‘K’); würde doch ’75’ und nicht ‘K’ drucken. Ich bezweifle auch, dass das Drucken von EOF als Zeichen mit “% c” dazu führt, dass “CTRL + D” gedruckt wird. Je nach Terminal erhalten Sie möglicherweise sogar “?”. Denken Sie daran, dass EOF das ist, was die Bibliothek zurückgibt, wenn Sie lesen Eingabe und ist ohnehin nicht als druckbares Zeichen darstellbar. Wenn du es bist Schreiben Ausgabe in Ihrem Terminal, das Drücken von STRG+D (oder was auch immer) bewirkt, dass das Terminal die Eingabe beendet; es bewirkt nicht, dass das Endgerät eine spezifische Darstellung von EOF erzeugt. Hoffe, das klärt die Dinge auf.
– Lelanthran
6. April 2013 um 10:51 Uhr
SpacedMonkey
Sie können einen EOF simulieren mit:
Es wird bisher in keiner der anderen Antworten erwähnt, aber Sie müssen möglicherweise die rechte Tastenkombination (^ D oder ^ Z) zwei- oder dreimal drücken, um EOF tatsächlich zu signalisieren. siehe hier zur Erklärung.
Versuchen
putchar('%')
oderprintf("%%")
– pmg
15. August 2012 um 11:36 Uhr
Was sollte ich lieber von der Tastatur geben, um die Kontrolle über den anderen Teil zu erhalten?
– Benutzer1593308
15. August 2012 um 11:38 Uhr
Sie ordnen niemals den Charakter, den Sie lesen, zu
c
.– Irgendein Programmierer-Typ
15. August 2012 um 11:43 Uhr
@ user1593308, hast du versucht, STRG-D zu drücken? Pl. Überprüfen Sie, ob dies den Code zum Else-Teil führt.
– Tanmoy Bandyopadhyay
15. August 2012 um 11:44 Uhr