So geben Sie den Wert von EOF im Terminal ein

Lesezeit: 1 Minute

Benutzeravatar von user1593308
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?

  • Versuchen putchar('%') oder printf("%%")

    – 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

Benutzeravatar von unwind
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

Benutzeravatar von Lelanthran
Lelanthran

  1. EOF ist aus einem bestimmten Grund in ein Makro eingeschlossen – Sie müssen den Wert nie kennen.
  2. Wenn Sie Ihr Programm ausführen, können Sie von der Befehlszeile aus EOF an das Programm senden mit StrgD (Unix) bzw STRGZ (Microsoft).
  3. 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

Benutzeravatar von SpacedMonkey
SpacedMonkey

Sie können einen EOF simulieren mit:

  • Fenster: Strg+Z
  • Unix: Strg+D

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.

1402590cookie-checkSo geben Sie den Wert von EOF im Terminal ein

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy