good () : 1 si aucun bit du statut d’erreur n’est activé ;
rdstate () : valeur du statut d’erreur (entier).
Modification du statut d’erreur
void clear (int i=0) donne la valeur i au statut d’erreur. Pour activer un seul bit (par
exemple badbit), on procédera ainsi (fl étant un flot) :
fl.clear (ios::badbit | fl rdstate() ) ;
Surdéfinition de () et de !
Si fl est un flot, (fl) est vrai si aucun des bits d’erreur n’est activé (c’est-à-dire si good
est vrai) ; de même, !fl est vrai si un des bits d’erreur précédents est activé (c’est-àdire si good est faux).
Surdéfinition de << et >> pour des types classe
On surdéfinira << et >> pour une classe quelconque, sous forme de fonctions amies, en
utilisant ces « canevas » :
ostream & operator << (ostream sortie, type_classe objet
1
)
{
// Envoi sur le flot sortie des membres de objet en utilisant
// les possibilités classiques de << pour les types de base
// c'est-à-dire des instructions de la forme :
// sortie << ..... ;
return sortie ;
}
istream & operator >> (istream & entree, type_de_base & objet)
{
// Lecture des informations correspondant aux différents membres de objet
// en utilisant les possibilités classiques de >> pour les types de base
// c'est-à-dire des instructions de la forme :
// entree >> ..... ;
return entree ;
}
Le mot d’état du statut de formatage
À chaque flot, est associé un « statut de formatage » constitué d’un mot d’état et de trois
valeurs numériques (gabarit, précision et caractère de remplissage).
Voici les principaux bits du mot d’état :
Le mot d’état du statut de formatage (partiel)
288
Précédent

- 289/398

Suivant