std::feof
| Definiert in Header <cstdio> |
||
| int feof( std::FILE* stream ); |
||
Prüft, ob das Ende des angegebenen Dateistreams erreicht wurde.
Inhalt |
[edit] Parameter
| stream | - | Der zu prüfende Dateistream. |
[edit] Rückgabewert
Ein Wert ungleich Null, wenn das Ende des Streams erreicht wurde, andernfalls 0.
[edit] Hinweise
Diese Funktion meldet nur den Streamzustand, wie er von der letzten I/O-Operation gemeldet wurde; sie untersucht nicht die zugehörige Datenquelle. Zum Beispiel, wenn die letzte I/O-Operation ein std::fgetc war, der das letzte Byte einer Datei zurückgab, gibt std::feof Null zurück. Der nächste std::fgetc schlägt fehl und ändert den Streamzustand in Dateiende. Erst dann gibt std::feof einen Wert ungleich Null zurück.
Im typischen Gebrauch stoppt die Eingabestream-Verarbeitung bei jedem Fehler. feof und std::ferror werden dann verwendet, um zwischen verschiedenen Fehlerbedingungen zu unterscheiden.
[edit] Beispiel
#include <cstdio> #include <cstdlib> int main() { int is_ok = EXIT_FAILURE; FILE* fp = std::fopen("/tmp/test.txt", "w+"); if (!fp) { std::perror("File opening failed"); return is_ok; } int c; // Note: int, not char, required to handle EOF while ((c = std::fgetc(fp)) != EOF) // Standard C I/O file reading loop std::putchar(c); if (std::ferror(fp)) std::puts("I/O error when reading"); else if (std::feof(fp)) { std::puts("End of file reached successfully"); is_ok = EXIT_SUCCESS; } std::fclose(fp); return is_ok; }
Ausgabe
End of file reached successfully
[edit] Siehe auch
| prüft, ob das Dateiende erreicht wurde (public member function of std::basic_ios<CharT,Traits>) | |
| löscht Fehler (function) | |
| zeigt eine Zeichenkette des aktuellen Fehlers nach stderr an (function) | |
| prüft auf einen Dateifehler (function) | |
| C-Dokumentation für feof
| |