std:: basic_ifstream
|
Défini dans l'en-tête
<fstream>
|
||
|
template
<
class
CharT,
|
||
Le modèle de classe
basic_ifstream
implémente des opérations d'entrée de haut niveau sur les flux basés sur des fichiers. Il interface un tampon de flux basé sur un fichier (
std::basic_filebuf
) avec l'interface de haut niveau de (
std::basic_istream
).
Une implémentation typique de
std::basic_ifstream
ne contient qu'un seul membre de données non dérivé : une instance de
std::
basic_filebuf
<
CharT, Traits
>
.
Diagramme d'héritage
Plusieurs typedefs pour les types de caractères courants sont fournis :
|
Défini dans l'en-tête
<fstream>
|
|
| Type | Définition |
std::ifstream
|
std :: basic_ifstream < char > |
std::wifstream
|
std :: basic_ifstream < wchar_t > |
Table des matières |
Types membres
| Type de membre | Définition |
char_type
|
CharT
|
traits_type
|
Traits
; le programme est mal formé si
Traits::char_type
n'est pas
CharT
.
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
native_handle_type
(C++26)
|
type défini par l'implémentation
qui est
TriviallyCopyable
et
semiregular
|
Fonctions membres
|
construit le flux de fichier
(fonction membre publique) |
|
|
(destructor)
[virtual]
(implicitly declared)
|
détruit le
basic_ifstream
et le tampon associé, ferme le fichier
(fonction membre publique virtuelle) |
|
(C++11)
|
déplace le flux de fichier
(fonction membre publique) |
|
(C++11)
|
échange deux flux de fichiers
(fonction membre publique) |
|
retourne l'objet de périphérique de fichier brut sous-jacent
(fonction membre publique) |
|
|
(C++26)
|
retourne le descripteur défini par l'implémentation sous-jacent
(fonction membre publique) |
Opérations sur les fichiers |
|
|
vérifie si le flux a un fichier associé
(fonction membre publique) |
|
|
ouvre un fichier et l'associe au flux
(fonction membre publique) |
|
|
ferme le fichier associé
(fonction membre publique) |
|
Fonctions non membres
|
(C++11)
|
spécialise l'algorithme
std::swap
(modèle de fonction) |
Hérité de std:: basic_istream
Fonctions membres
Entrée formatée |
|
|
extrait des données formatées
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
Entrée non formatée |
|
|
extrait des caractères
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
|
lit le caractère suivant sans l'extraire
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
|
réinjecte un caractère
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
|
replace un caractère dans le flux d'entrée
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
|
extrait des caractères jusqu'à trouver le caractère donné
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
|
extrait et ignore des caractères jusqu'à trouver le caractère donné
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
|
extrait des blocs de caractères
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
|
extrait des blocs de caractères déjà disponibles
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
|
retourne le nombre de caractères extraits par la dernière opération d'entrée non formatée
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
Positionnement |
|
|
retourne l'indicateur de position d'entrée
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
|
définit l'indicateur de position d'entrée
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
Divers |
|
|
synchronise avec le dispositif de stockage sous-jacent
(fonction membre publique de
std::basic_istream<CharT,Traits>
)
|
|
Classes membres
|
implémente la logique basique pour la préparation du flux aux opérations d'entrée
(classe membre publique de
std::basic_istream<CharT,Traits>
)
|
Hérité de std:: basic_ios
Types membres
| Type membre | Définition |
char_type
|
CharT
|
traits_type
|
Traits
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
Fonctions membres
Fonctions d'état |
|
|
vérifie qu'aucune erreur ne s'est produite, c'est-à-dire que les opérations d'E/S sont disponibles
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
vérifie si la fin de fichier a été atteinte
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
vérifie si une erreur s'est produite
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
vérifie si une erreur non récupérable s'est produite
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
vérifie si une erreur s'est produite (synonyme de
fail()
)
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
vérifie qu'aucune erreur ne s'est produite (synonyme de
!
fail()
)
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
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>
)
|
|
Formatage |
|
|
copie les informations de formatage
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
gère le caractère de remplissage
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
Divers |
|
|
gère le masque d'exceptions
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
définit la locale
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
gère le tampon de flux associé
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
gère le flux lié
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
rétrécit les caractères
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
|
élargit les caractères
(fonction membre publique de
std::basic_ios<CharT,Traits>
)
|
|
Hérité de std:: ios_base
Fonctions membres
Formatage |
|
|
gère les indicateurs de format
(fonction membre publique de
std::ios_base
)
|
|
|
définit un indicateur de format spécifique
(fonction membre publique de
std::ios_base
)
|
|
|
efface un indicateur de format spécifique
(fonction membre publique de
std::ios_base
)
|
|
|
gère la précision décimale des opérations à virgule flottante
(fonction membre publique de
std::ios_base
)
|
|
|
gère la largeur du champ
(fonction membre publique de
std::ios_base
)
|
|
Locales |
|
|
définit la locale
(fonction membre publique de
std::ios_base
)
|
|
|
retourne la locale actuelle
(fonction membre publique de
std::ios_base
)
|
|
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 statique publique de
std::ios_base
)
|
|
redimensionne le stockage privé si nécessaire et accède à l'élément
long
à l'index donné
(fonction membre publique de
std::ios_base
)
|
|
|
redimensionne le stockage privé si nécessaire et accède à l'élément
void
*
à l'index donné
(fonction membre publique de
std::ios_base
)
|
|
Divers |
|
|
enregistre la fonction de rappel d'événement
(fonction membre publique de
std::ios_base
)
|
|
|
[static]
|
définit si les bibliothèques d'E/S C++ et C sont interopérables
(fonction membre statique publique de
std::ios_base
)
|
Classes membres |
|
|
exception de flux
(classe membre publique de
std::ios_base
)
|
|
|
initialise les objets de flux standard
(classe membre publique de
std::ios_base
)
|
|
Types membres et constantes |
|||||||||||||||||||||||||||||||||||||||
| Type | Explication | ||||||||||||||||||||||||||||||||||||||
|
type de mode d'ouverture de flux
Les constantes suivantes sont également définies :
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
type des indicateurs de formatage
Les constantes suivantes sont également définies :
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
type d'état du flux
Les constantes suivantes sont également définies :
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
Type de direction de positionnement
Les constantes suivantes sont également définies :
(typedef) |
|||||||||||||||||||||||||||||||||||||||
|
spécifie le type d'événement
(enum) |
|||||||||||||||||||||||||||||||||||||||
|
type de fonction de rappel
(typedef) |
|||||||||||||||||||||||||||||||||||||||
Notes
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_fstream_native_handle
|
202306L
|
(C++26) | Prise en charge des handles natifs |
Exemple
#include <fstream> #include <iostream> #include <string> int main() { std::string filename = "Test.b"; // prépare un fichier à lire double d = 3.14; std::ofstream(filename, std::ios::binary) .write(reinterpret_cast<char*>(&d), sizeof d) << 123 << "abc"; // ouvre le fichier en lecture std::ifstream istrm(filename, std::ios::binary); if (!istrm.is_open()) std::cout << "échec de l'ouverture de " << filename << '\n'; else { double d; istrm.read(reinterpret_cast<char*>(&d), sizeof d); // entrée binaire int n; std::string s; if (istrm >> n >> s) // entrée texte std::cout << "relu depuis le fichier : " << d << ' ' << n << ' ' << s << '\n'; } }
Sortie :
relu depuis le fichier : 3.14 123 abc