Namespaces
Variants

std:: ios_base

From cppreference.net
< cpp ‎ | io
Défini dans l'en-tête <ios>
class ios_base ;

La classe ios_base est une classe polyvalente qui sert de classe de base pour toutes les classes de flux d'E/S. Elle maintient plusieurs types de données :

1) informations d'état : indicateurs de statut de flux.
2) informations de contrôle : indicateurs qui contrôlent le formatage des séquences d'entrée et de sortie ainsi que les paramètres régionaux intégrés.
3) stockage privé : structure de données extensible indexée qui permet à la fois des membres long et void * , qui peut être implémentée comme deux tableaux de longueur arbitraire ou un seul tableau de structures à deux éléments ou un autre conteneur.
4) callbacks : nombre arbitraire de fonctions définies par l'utilisateur à appeler depuis imbue() , std::basic_ios::copyfmt() , et ~ios_base() .

L'implémentation typique contient des constantes membres correspondant à toutes les valeurs de fmtflags , iostate , openmode , et seekdir indiquées ci-dessous, des variables membres pour maintenir la précision actuelle, la largeur et les indicateurs de formatage, le masque d'exception, l'état d'erreur du tampon, un conteneur redimensionnable contenant les rappels, les paramètres régionaux actuellement imbriqués, le stockage privé, et une variable entière statique pour xalloc() .

Table des matières

Fonctions membres

construit l'objet
(fonction membre protégée)
[virtual]
détruit l'objet
(fonction membre publique virtuelle)
assigne au flux
(fonction membre publique)
Formatage
gère les indicateurs de format
(fonction membre publique)
définit un indicateur de format spécifique
(fonction membre publique)
efface un indicateur de format spécifique
(fonction membre publique)
gère la précision décimale des opérations en virgule flottante
(fonction membre publique)
gère la largeur du champ
(fonction membre publique)
Locales
définit la locale
(fonction membre publique)
retourne la locale actuelle
(fonction membre publique)
Tableau extensible interne
[static]
retourne un entier unique à l'échelle du programme qui peut être utilisé en toute sécurité comme index pour pword() et iword()
(fonction membre publique statique)
redimensionne le stockage privé si nécessaire et accède à l'élément long à l'index donné
(fonction membre publique)
redimensionne le stockage privé si nécessaire et accède à l'élément void * à l'index donné
(fonction membre publique)
Divers
enregistre la fonction de rappel d'événement
(fonction membre publique)
détermine si les bibliothèques d'E/S C++ et C sont interopérables
(fonction membre publique statique)

Classes membres

exception de flux
(classe membre publique)
initialise les objets de flux standard
(classe membre publique)

Types membres et constantes

Type Explication
type de mode d'ouverture de flux

Les constantes suivantes sont également définies :

Constante Explication
app se positionner à la fin du flux avant chaque écriture
binary ouvrir en mode binaire
in ouvrir en lecture
out ouvrir en écriture
trunc vider le contenu du flux à l'ouverture
ate se positionner à la fin du flux immédiatement après l'ouverture
noreplace (C++23) ouvrir en mode exclusif

(typedef)
type des indicateurs de formatage

Les constantes suivantes sont également définies :

Constante Explication
dec utilise la base décimale pour les E/S entières : voir std::dec
oct utilise la base octale pour les E/S entières : voir std::oct
hex utilise la base hexadécimale pour les E/S entières : voir std::hex
basefield dec | oct | hex . Utile pour les opérations de masquage
left ajustement à gauche (ajoute des caractères de remplissage à droite) : voir std::left
right ajustement à droite (ajoute des caractères de remplissage à gauche) : voir std::right
internal ajustement interne (ajoute des caractères de remplissage au point désigné interne) : voir std::internal
adjustfield left | right | internal . Utile pour les opérations de masquage
scientific génère les types à virgule flottante en utilisant la notation scientifique, ou la notation hexadécimale si combiné avec fixed : voir std::scientific
fixed génère les types à virgule flottante en utilisant la notation fixe, ou la notation hexadécimale si combiné avec scientific : voir std::fixed
floatfield scientific | fixed . Utile pour les opérations de masquage
boolalpha insère et extrait le type bool en format alphanumérique : voir std::boolalpha
showbase génère un préfixe indiquant la base numérique pour la sortie entière, requiert l'indicateur monétaire dans les E/S monétaires : voir std::showbase
showpoint génère un caractère point décimal inconditionnellement pour la sortie des nombres à virgule flottante : voir std::showpoint
showpos génère un caractère + pour les sorties numériques non négatives : voir std::showpos
skipws ignore les espaces blancs initiaux avant certaines opérations d'entrée : voir std::skipws
unitbuf vide la sortie après chaque opération de sortie : voir std::unitbuf
uppercase remplace certaines lettres minuscules par leurs équivalents majuscules dans certaines opérations de sortie : voir std::uppercase

(typedef)
type d'état du flux

Les constantes suivantes sont également 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

(typedef)
type de direction de positionnement

Les constantes suivantes sont également définies :

Constante Explication
beg le début d'un flux
end la fin d'un flux
cur la position actuelle de l'indicateur de position du flux

(typedef)
spécifie le type d'événement
(enum)
type de fonction de rappel
(typedef)
Types de membres obsolètes
Type Explication
io_state (obsolète) type entier pouvant être utilisé comme iostate
open_mode (obsolète) type entier pouvant être utilisé comme openmode
seek_dir (obsolète) type entier pouvant être utilisé comme seekdir
streamoff (obsolète) type non spécifié pouvant être utilisé comme off_type , pas nécessairement std::streamoff
streampos (obsolète) type non spécifié pouvant être utilisé comme pos_type , pas nécessairement std::streampos
(jusqu'à C++17)

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR S'applique à Comportement publié Comportement corrigé
LWG 1357
( N3110 )
C++98 std::ios_base définissait operator~ , operator &
et operator | pour les types openmode , fmtflags et
iostate , violant les exigences de BitmaskType [1]
suppression de ces définitions
  1. Un BitmaskType doit prendre en charge les opérations bit à bit par lui-même. La prise en charge des opérations bit à bit ne doit pas être fournie de manière externe.

Voir aussi

gère un tampon de flux arbitraire
(modèle de classe)