Heim >Backend-Entwicklung >C++ >Wie simulieren Sie EOF auf Standardeingabe (stdin)?

Wie simulieren Sie EOF auf Standardeingabe (stdin)?

DDD
DDDOriginal
2024-10-27 23:29:29796Durchsuche

How Do You Simulate EOF on Standard Input (stdin)?

Bestimmen des EOF des Standardeingabestroms (stdin)

Bei der Programmierung ist der Standardeingabestrom (stdin) eine häufige Eingabequelle, der Eingaben von der Tastatur des Benutzers liest . Allerdings kann es manchmal schwierig sein, festzustellen, wann der Benutzer mit der Dateneingabe fertig ist und das Ende der Datei (EOF) erreicht hat.

Verfügt stdin über EOF?

Standardmäßig , stdin hat von Natur aus keinen EOF. Das bedeutet, dass ein Programm das Lesen von stdin auf unbestimmte Zeit fortsetzt und auf weitere Eingaben vom Benutzer wartet.

EOF zu stdin hinzufügen

Wenn Sie ein EOF manuell simulieren müssen Auf stdin sind zwei gängige Methoden:

  • Strg D (UNIX): In UNIX-basierten Systemen signalisiert das Drücken von Strg D das Ende der Datei.
  • Strg Z (Windows): Unter Windows-Betriebssystemen zeigt das Drücken von Strg Z normalerweise das Ende der Eingabe an.

Beispiel:

Das Folgende Code-Snippet verwendet fread zum Lesen aus stdin und prüft mit Strg D auf EOF:

<code class="c">#include <stdio.h>

int main() {
    char buffer[BUFSIZ];
    int c;
    
    while ((c = fread(buffer, sizeof(char), BUFSIZ, stdin)) > 0) {
        // Process input...
    }

    return 0;
}</code>

Wenn der Benutzer Strg D drückt, gibt die Funktion fread() -1 zurück, was das Ende der Datei anzeigt. Dies löst das Ende der while-Schleife aus.

Hinweis:

Es ist wichtig zu beachten, dass die oben beschriebenen EOF-Simulationsmethoden systemabhängig sind und möglicherweise nicht überall konsistent funktionieren alle Plattformen.

Das obige ist der detaillierte Inhalt vonWie simulieren Sie EOF auf Standardeingabe (stdin)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn