std::ios_base:: iostate
|
typedef
/*implementation defined*/
iostate
;
|
||
|
static
constexpr
iostate goodbit
=
0
;
|
||
|
static
constexpr
iostate badbit
=
/* implementation defined */
static
constexpr
iostate failbit
=
/* implementation defined */
|
||
Spécifie les indicateurs d'état du flux. C'est un BitmaskType , les constantes suivantes sont définies :
| Constante | Explication |
| goodbit | aucune erreur |
| badbit | erreur de flux irrécupérable |
| failbit | échec de l'opération d'entrée/sortie (erreur de formatage ou d'extraction) |
| eofbit | la séquence d'entrée associée a atteint la fin du fichier |
Table des matières |
Le eofbit
L'indicateur eofbit est défini par les fonctions standards de bibliothèque suivantes :
- La fonction d'entrée de chaîne std::getline si elle se termine en atteignant la fin du flux, plutôt qu'en atteignant le caractère de terminaison spécifié.
-
Les surcharges d'entrée numérique de
basic_istream::operator>>
si la fin du flux est rencontrée lors de la lecture du caractère suivant, à l'Étape 2 du traitement
num_get::get
. Selon l'état d'analyse,
failbitpeut ou non être défini simultanément : par exemple, int n ; istringstream buf ( "1" ) ; buf >> n ; définiteofbit, mais pasfailbit: l'entier 1 a été analysé et stocké avec succès dansn. En revanche, bool b ; istringstream buf ( "tr" ) ; buf >> boolalpha >> b ; définit à la foiseofbitetfailbit: il n'y avait pas assez de caractères pour compléter l'analyse du booléen true . - Les surcharges d'extraction de caractères de operator>> std::basic_istream , si la fin du flux est atteinte avant la limite (le cas échéant) sur le nombre de caractères à extraire.
- Le manipulateur d'E/S std::get_time et toutes les fonctions d'analyse std::time_get : time_get::get , time_get::get_time , time_get::get_date , etc., si la fin du flux est atteinte avant que le dernier caractère nécessaire à l'analyse de la valeur de date/heure attendue ne soit traité.
- Le manipulateur d'E/S std::get_money et la fonction money_get::get , si la fin du flux est atteinte avant que le dernier caractère nécessaire à l'analyse de la valeur monétaire attendue ne soit traité.
-
Le constructeur
basic_istream::sentry
, exécuté au début de chaque fonction d'entrée formatée : sauf si le bit
skipwsest désactivé (par exemple en utilisant std::noskipws ), sentry lit et ignore les caractères d'espacement initiaux. Si la fin du flux d'entrée est atteinte pendant cette opération, à la foiseofbitetfailbitsont définis, et aucune entrée n'a lieu. -
Le manipulateur d'E/S
std::ws
, s'il atteint la fin du flux en consommant les espaces (mais, contrairement à sentry pour l'entrée formatée, il ne définit pas
failbitdans ce cas). - Les fonctions d'entrée non formatées basic_istream::read , basic_istream::get , basic_istream::peek , basic_istream::readsome , basic_istream::ignore , et basic_istream::getline , lorsqu'elles atteignent la fin du flux.
- La fonction d'entrée de rejet basic_istream::ignore , lorsqu'elle atteint la fin du flux avant d'atteindre le caractère délimiteur spécifié.
- La fonction d'entrée immédiate basic_istream::readsome , si basic_streambuf::in_avail retourne - 1 .
Les fonctions suivantes effacent
eofbit
comme effet secondaire :
Notez que dans presque toutes les situations, si eofbit est défini, le failbit est également défini.
Le failbit
Le failbit est défini par les fonctions suivantes de la bibliothèque standard :
-
Le constructeur de
basic_istream::sentry
, exécuté au début de chaque fonction d'entrée, si soit
eofbitsoitbadbitest déjà défini sur le flux, ou si la fin du flux est rencontrée lors de la consommation des espaces blancs de début. - Le constructeur de basic_ostream::sentry , exécuté au début de chaque fonction de sortie, sous des conditions définies par l'implémentation.
- operator>> (std::basic_string<>) si la fonction n'extrait aucun caractère du flux d'entrée.
- operator>> (std::complex<>) si la fonction ne parvient pas à extraire un nombre complexe valide.
- Les surcharges de tableau de caractères et de caractère unique de operator>> si elles ne parviennent pas à extraire aucun caractère.
- La surcharge streambuf de basic_istream::operator>> si l'argument streambuf est un pointeur nul ou si aucun caractère n'a été inséré dans le streambuf.
- La surcharge streambuf de basic_ostream::operator<< si la fonction n'insère aucun caractère.
- operator>> (std::bitset<>) si la fonction n'extrait aucun caractère du flux d'entrée.
- std::getline si la fonction n'extrait aucun caractère ou si elle parvient à extraire basic_string::max_size caractères du flux d'entrée.
- Les surcharges d'entrée numériques, de pointeur et booléennes de basic_istream::operator>> (techniquement, les surcharges de num_get::get qu'elles appellent), si l'entrée ne peut pas être analysée comme une valeur valide ou si la valeur analysée ne correspond pas au type de destination.
- Le manipulateur d'entrée temporelle std::get_time (techniquement, time_get::get qu'il appelle), si l'entrée ne peut pas être analysée de manière non ambiguë comme une valeur temporelle selon la chaîne de format donnée.
- Le manipulateur d'entrée monétaire std::get_money (techniquement, money_get::get qu'il appelle), si l'entrée ne peut pas être analysée de manière non ambiguë comme une valeur monétaire selon les règles de la locale.
- Les opérateurs d'extraction de tous les RandomNumberEngine s , si une mauvaise entrée est rencontrée.
- Les opérateurs d'extraction de toutes les RandomNumberDistribution s , si une mauvaise entrée est rencontrée.
- Les fonctions d'entrée non formatées basic_istream::get si elles ne parviennent pas à extraire aucun caractère.
- basic_istream::getline , si elle n'extrait aucun caractère, si elle remplit le tampon fourni sans rencontrer le délimiteur, ou si la taille du tampon fourni est inférieure à 1.
- basic_istream::read , si la condition de fin de fichier se produit sur le flux d'entrée avant que tous les caractères demandés n'aient pu être extraits.
- basic_istream::seekg en cas d'échec
- basic_ostream::tellp en cas d'échec
- Les constructeurs de std::basic_fstream , std::basic_ifstream , et std::basic_ofstream qui prennent un argument de nom de fichier, si le fichier ne peut pas être ouvert.
- basic_fstream::open , basic_ifstream::open , et basic_ofstream::open si le fichier ne peut pas être ouvert.
- basic_fstream::close , basic_ifstream::close , et basic_ofstream::close si le fichier ne peut pas être fermé.
Le badbit
Le badbit est défini par les fonctions standards de bibliothèque suivantes :
- basic_ostream::put s'il échoue à insérer un caractère dans le flux de sortie, pour quelque raison que ce soit.
- basic_ostream::write s'il échoue à insérer un caractère dans le flux de sortie, pour quelque raison que ce soit.
- Fonctions de sortie formatées operator<< , std::put_money , et std::put_time , si elles rencontrent la fin du flux de sortie avant d'avoir terminé la sortie.
-
basic_ios::init
lorsqu'elle est appelée pour initialiser un flux avec un pointeur nul pour
rdbuf(). -
basic_istream::putback
et
basic_istream::unget
lorsqu'elles sont appelées sur un flux avec un
rdbuf()nul. - basic_ostream::operator<< (basic_streambuf*) lorsqu'un pointeur nul est passé en argument.
- basic_istream::putback et basic_istream::unget si rdbuf ( ) - > sputbackc ( ) ou rdbuf ( ) - > sungetc ( ) retourne traits :: eof ( ) .
-
basic_istream::sync
,
basic_ostream::flush
, et toute fonction de sortie sur un flux de sortie
unitbuf, si rdbuf ( ) - > pubsync ( ) retourne - 1 . -
Toute fonction d'E/S de flux si une exception est levée par une fonction membre du tampon de flux associé (par ex.
sbumpc(),xsputn(),sgetc(),overflow(), etc). - ios_base::iword et ios_base::pword en cas d'échec (par ex. échec d'allocation mémoire).
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
Le tableau suivant présente les valeurs des basic_ios accesseurs ( good() , fail() , etc.) pour toutes les combinaisons possibles des ios_base::iostate indicateurs :
| 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 |
| faux | vrai | vrai | faux | vrai | vrai | faux | faux | vrai |
| 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 |
|
retourne les indicateurs d'état
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
définit les indicateurs d'état
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
modifie les indicateurs d'état
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|