Ganzzahlen aus einer Datei bis zum EOF lesen: Doppelte Lesevorgänge vermeiden
Der bereitgestellte C-Code liest Ganzzahlen aus einer Textdatei, bis sie das Ende erreicht der Datei (EOF). Allerdings wird die letzte Zeile zweimal gelesen, was zu einer Wiederholung in der Ausgabe führt. Dies liegt daran, dass:
Lösung:
Um dieses Problem zu beheben, verwenden Sie eine While-Schleife, die beim Lesen von EOF beendet wird:
while (true) { int x; iFile >> x; if (iFile.eof()) break; cerr << x << endl; }
In dieser Schleife:
Dieser Ansatz stellt sicher, dass die letzte Ganzzahl nur einmal gedruckt wird.
Hinweis:
Der ursprüngliche Code hatte ein weiteres potenzielles Problem: den Versuch, eine leere Datei zu lesen. Dies kann gelöst werden, indem der Lesevorgang in eine if-Anweisung eingebettet wird, die prüft, ob der Stream geöffnet ist und nicht bei EOF.
Das obige ist der detaillierte Inhalt vonWie verhindert man doppelte Lesevorgänge beim Lesen von Ganzzahlen aus einer Datei in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!