| I/O manipulators | ||||
| Print functions(C++23) | ||||
| C-style I/O | ||||
| Buffers | ||||
(C++23) | ||||
(C++98/26*) | ||||
(C++20) | ||||
| Streams | ||||
| Abstractions | ||||
| File I/O | ||||
| String I/O | ||||
| Array I/O | ||||
(C++23) | ||||
(C++23) | ||||
(C++23) | ||||
(C++98/26*) | ||||
(C++98/26*) | ||||
(C++98/26*) | ||||
| Synchronized Output | ||||
(C++20) | ||||
| Types | ||||
| Error category interface | ||||
(C++11) | ||||
(C++11) |
| Member functions | ||||
| State functions | ||||
basic_ios::fail | ||||
| Formatting | ||||
| Miscellaneous | ||||
| Protected member functions | ||||
(C++11) | ||||
(C++11) | ||||
(C++11) |
bool fail()const; | ||
Returnstrue if an error has occurred on the associated stream. Specifically, returnstrue ifbadbit orfailbit is set inrdstate().
Seeios_base::iostate for the list of conditions that setfailbit orbadbit.
Contents |
(none)
true if an error has occurred,false otherwise.
#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";returnEXIT_FAILURE;} // typical C++ I/O loop uses the return value of the I/O function// as the loop controlling condition, operator bool() is used herefor(int n; file>> n;)std::cout<< n<<' ';std::cout<<'\n'; if(file.bad())std::cout<<"I/O error while reading\n";elseif(file.eof())std::cout<<"End of file reached successfully\n";elseif(file.fail())std::cout<<"Non-integer data encountered\n";}
The following table shows the value ofbasic_ios accessors (good(),fail(), etc.) for all possible combinations ofios_base::iostate flags:
| ios_base::iostate flags | basic_ios accessors | |||||||
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 |
| checks for a file error (function)[edit] |