std::basic_ios<CharT,Traits>:: good
|
bool
good
(
)
const
;
|
||
Gibt true zurück, wenn der letzte E/A-Vorgang auf dem Stream erfolgreich abgeschlossen wurde. Konkret gibt das Ergebnis von rdstate ( ) == 0 zurück.
Siehe ios_base::iostate für die Liste der Bedingungen, die die Stream-Statusbits setzen.
Inhaltsverzeichnis |
Parameter
(keine)
Rückgabewert
true wenn alle Stream-Fehlerflags falsch sind, false andernfalls.
Beispiel
#include <cstdlib> #include <fstream> #include <iostream> int main() { const char* fname = "/tmp/test.txt"; std::ofstream ofile{fname}; ofile << "10 " << "11 " << "12 " << "non-int"; ofile.close(); std::ifstream file{fname}; if (!file.good()) { std::cout << "#1. Opening file test.txt failed - " "one of the error flags is true\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 << "#2. I/O error while reading - badbit is true\n"; return EXIT_FAILURE; } else if (file.eof()) std::cout << "#3. End of file reached successfully - eofbit is true\n" "This is fine even though file.good() is false\n"; else if (file.fail()) std::cout << "#4. Non-integer data encountered - failbit is true\n"; }
Mögliche Ausgabe:
10 11 12 #4. Non-integer data encountered - failbit is true
Siehe auch
Die folgende Tabelle zeigt die Werte der basic_ios Accessoren ( good() , fail() , etc.) für alle möglichen Kombinationen der ios_base::iostate Flags:
| ios_base::iostate Flags |
basic_ios
Accessoren
|
|||||||
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 |
| falsch | wahr | wahr | falsch | wahr | wahr | falsch | falsch | wahr |
| wahr | falsch | falsch | falsch | falsch | falsch | wahr | wahr | falsch |
| wahr | falsch | wahr | falsch | wahr | wahr | wahr | falsch | wahr |
| wahr | wahr | falsch | falsch | wahr | falsch | wahr | falsch | wahr |
| wahr | wahr | wahr | falsch | wahr | wahr | wahr | falsch | wahr |