std::basic_ios<CharT,Traits>::eof
| bool eof() const; |
||
Gibt true zurück, wenn der zugehörige Stream das Dateiende erreicht hat. Spezifisch gibt es true zurück, wenn eofbit in rdstate() gesetzt ist.
Siehe ios_base::iostate für die Liste der Bedingungen, die eofbit setzen.
Inhalt |
[bearbeiten] Parameter
(keine)
[bearbeiten] Rückgabewert
true, wenn das Dateiende aufgetreten ist, andernfalls false.
[bearbeiten] Hinweise
Diese Funktion meldet nur den Stream-Status, wie er durch die letzte I/O-Operation gesetzt wurde; sie untersucht nicht die zugehörige Datenquelle. Zum Beispiel, wenn die letzte I/O-Operation ein get() war, das das letzte Byte einer Datei zurückgab, gibt eof() false zurück. Das nächste get() schlägt fehl, nichts zu lesen und setzt das eofbit. Erst dann gibt eof() true zurück.
Bei typischer Verwendung stoppt die Verarbeitung von Eingabestreams bei jedem Fehler. eof() und fail() können dann verwendet werden, um zwischen verschiedenen Fehlerbedingungen zu unterscheiden.
[bearbeiten] Beispiel
#include <cstdlib> #include <fstream> #include <iostream> int main() { std::ifstream file("test.txt"); if (!file) // operator! is used here { std::cout << "File opening failed\n"; return EXIT_FAILURE; } // typical C++ I/O loop uses the return value of the I/O function // as the loop controlling condition, operator bool() is used here for (int n; file >> n;) std::cout << n << ' '; std::cout << '\n'; if (file.bad()) std::cout << "I/O error while reading\n"; else if (file.eof()) std::cout << "End of file reached successfully\n"; else if (file.fail()) std::cout << "Non-integer data encountered\n"; }
[bearbeiten] Siehe auch
Die folgende Tabelle zeigt die Werte der basic_ios-Accessorfunktionen (good(), fail() usw.) für alle möglichen Kombinationen von ios_base::iostate-Flags
| ios_base::iostate Flags | basic_ios-Zugriffsfunktionen | |||||||
eofbit
|
failbit
|
badbit
|
good() | fail() | bad() | eof() | operator bool | operator! |
| false | false | false | true | false | false | false | true | false |
| false | false | true | false | true | true | false | false | true |
| false | true | false | false | true | false | false | false | true |
| false | true | true | false | true | true | false | false | true |
| true | false | false | false | false | false | true | true | false |
| true | false | true | false | true | true | true | false | true |
| true | true | false | false | true | false | true | false | true |
| true | true | true | false | true | true | true | false | true |
| prüft auf Dateiende (function) |