Heim  >  Artikel  >  Ist es möglich, EOF beim Lesen der Eingabe zu überspringen?

Ist es möglich, EOF beim Lesen der Eingabe zu überspringen?

WBOY
WBOYnach vorne
2024-02-09 11:20:09737Durchsuche

php-Editor Banana ist hier, um eine häufig gestellte Frage zu beantworten: „Kann EOF beim Lesen von Eingaben übersprungen werden?“ In PHP bezieht sich EOF auf „End of File“, also die Markierung am Ende der Datei. Wenn wir eine Datei lesen, verwenden wir normalerweise eine Schleife, um Zeile für Zeile zu lesen, bis wir das Ende der Datei erreichen. Manchmal möchten wir jedoch in bestimmten Situationen EOF überspringen und mit dem Lesen der nächsten Zeile fortfahren. Glücklicherweise stellt PHP entsprechende Methoden zur Verfügung, um diese Anforderung zu erfüllen. Wir können die Funktion feof() verwenden, um festzustellen, ob das Ende der Datei erreicht wurde, und sie dann mit der Funktion fgets() kombinieren, um die nächste Zeile zu lesen. Auf diese Weise können wir EOF überspringen und flexible Dateilesevorgänge erreichen.

Frageninhalt

Wenn ich nach der Erfassung des EOF erneut versuche, Informationen aus der Eingabe zu lesen, erhalte ich keine neuen Informationen mehr. Gibt es eine Möglichkeit, Lesedaten wiederherzustellen?

Scanner s = new Scanner(System.in);
while (s.hasNextInt()) {
    A[i] = s.nextInt();
    i++;
}

Workaround

Wenn der Stream EOF anzeigt, bedeutet das, dass Sie alles verbraucht haben. Es gibt nichts anderes zu lesen. Wenn die Stream-Implementierung dies zulässt, können Sie den Stream „zurückspulen“ und dieselben Bytes erneut lesen. Andernfalls schließen Sie es einfach.

Das ist so, als würde man das ganze Brot aufessen. Danach gab es kein Brot mehr zu essen. Gehen Sie weiter und finden Sie etwas anderes zu essen.

Das obige ist der detaillierte Inhalt vonIst es möglich, EOF beim Lesen der Eingabe zu überspringen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen