std::basic_ios<CharT,Traits>:: good
|
bool
good
(
)
const
;
|
||
Retourne true si la dernière opération d'E/S sur le flux s'est terminée avec succès. Plus précisément, retourne le résultat de rdstate ( ) == 0 .
Voir ios_base::iostate pour la liste des conditions qui définissent les bits d'état du flux.
Table des matières |
Paramètres
(aucun)
Valeur de retour
true si tous les indicateurs d'erreur du flux sont faux, false sinon.
Exemple
#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. Échec de l'ouverture du fichier test.txt - " "un des indicateurs d'erreur est vrai\n"; return EXIT_FAILURE; } // la boucle d'E/S typique en C++ utilise la valeur de retour de la fonction d'E/S // comme condition de contrôle de boucle, operator bool() est utilisé ici for (int n; file >> n;) std::cout << n << ' '; std::cout << '\n'; if (file.bad()) { std::cout << "#2. Erreur d'E/S lors de la lecture - badbit est vrai\n"; return EXIT_FAILURE; } else if (file.eof()) std::cout << "#3. Fin de fichier atteinte avec succès - eofbit est vrai\n" "Ceci est correct même si file.good() est faux\n"; else if (file.fail()) std::cout << "#4. Données non entières rencontrées - failbit est vrai\n"; }
Sortie possible :
10 11 12 #4. Données non entières rencontrées - failbit est vrai
Voir aussi
Le tableau suivant présente la valeur des basic_ios accesseurs ( good() , fail() , etc.) pour toutes les combinaisons possibles des ios_base::iostate flags :
| ios_base::iostate indicateurs |
basic_ios
accesseurs
|
|||||||
eofbit
|
failbit
|
badbit
|
good() | fail() | bad() | eof() | operator bool | operator! |
| faux | faux | faux | vrai | faux | faux | faux | vrai | faux |
| faux | faux | vrai | faux | vrai | vrai | faux | faux | vrai |
| faux | vrai | faux | faux | vrai | faux | faux | faux | vrai |
| false | true | true | false | true | true | false | false | true |
| vrai | faux | faux | faux | faux | faux | vrai | vrai | faux |
| vrai | faux | vrai | faux | vrai | vrai | vrai | faux | vrai |
| vrai | vrai | faux | faux | vrai | faux | vrai | faux | vrai |
| vrai | vrai | vrai | faux | vrai | vrai | vrai | faux | vrai |