Wie simuliert man einen EOF?

Lesezeit: 2 Minuten

Benutzeravatar von Andreas Grech
Andreas Gretsch

Ich lese gerade das Buch von K&R und tippe die Beispiele aus dem ersten Abschnitt ein, und es gibt ein paar Beispiele wie dieses:

while((c = getchar()) != EOF) {
    //do something
}

Ich teste diese Beispiele auf einer Windows-Box und führe daher die kompilierten Exe-Dateien aus cmd prompt.

Um das obige Beispiel zu testen, wie simuliere ich eine EOF? Das heißt, wie kann ich im Grunde die Schleife stoppen, wenn ich das Beispiel von der Eingabeaufforderung aus teste?

Benutzeravatar von Greg Hewgill
Greg Hewgill

Um einen EOF einzugeben, verwenden Sie:

  1. ^Z (StrgZ) unter Windows
  2. ^D auf Unix-ähnlichen Systemen

  • Einige nützliche Ergänzungen: Wenn Sie sich in einer Zeile befinden, die nicht leer ist, müssen Sie ^D zweimal drücken: Einmaliges Drücken wird diese Zeile leeren, ein weiteres Mal drücken wird EOF senden. Wenn Sie sich in einer leeren Zeile befinden, reicht ein ^D.

    – Johannes Schaub – litb

    13. Juli 2009 um 11:38 Uhr

  • Das ist das HTML-Element .

    – Greg Hewgill

    13. Juli 2009 um 12:02 Uhr

  • Unter Windows erzeugt die Eingabe von ^Z nur dann EOF, wenn sie am Anfang einer Zeile erfolgt.

    – MM

    23. September 2015 um 10:49 Uhr

Verweisen EOF

Windows: Ctrl+Z
Unix :Ctrl+D

Drücken Sie zuerst: Strg^X, dann: Strg^D

Sie können EOF auch simulieren, indem Sie der int-Variable explizit den Wert -1 zuweisen.

Schauen Sie sich diesen Code für mehr Klarheit an:

#include<stdio.h>

int main() {    
    // char ch=getchar()
    // int ch=-1;

    if(ch==EOF) { printf("\nEOF: %d",EOF); }
    if((ch!=EOF)==0) { printf("\nit is equal to 0"); }
    if((ch!=EOF)==1) { printf("\nit is equal to 1"); }
    else { printf("\n it is equal to other value"); }
    system("pause");
    return 0;
}

Benutzeravatar von Toffy_
Toffy_

Ich hatte das gleiche Problem nach dem Pressen Strg+d Programm gestoppt und 0 zurückgegeben. Wenn Sie verwenden Klion Drücken Sie Strg+Umschalt+a als geben Sie Registry ein, drücken Sie die Eingabetaste und vergewissern Sie sich Prozesse.mit.pty.ausführen. ist ungeprüft. Danach kompilieren Sie das Programm erneut und dann können Sie Eingaben eingeben, aber nicht drücken Strg+d in der gleichen Zeile wie die Eingabe es wird 0 oder Fehler zurückgeben.

1413020cookie-checkWie simuliert man einen EOF?

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

Privacy policy