Diffusez entrée / sortie en C ++

Les classes de l'C ifstream et ofstream sont sous-classes de istream et ostream conçu pour effectuer entrée et de sortie flux de fichiers du disque. Vous pouvez utiliser les mêmes extracteurs et inséreuses sur ifstream et ofstream les objets que vous avez utilisé sur cin et cout.

La ifstream est en fait une instanciation de la classe de modèle basic_ifstream avec T ajuster à carboniser. La basic_ifstream classe modèle est instancié avec d'autres types ainsi de fournir différents types de classes d'entrée. Par exemple, la grande classe de fichier de flux wifstream est basé sur le même basic_ifstream avec T ajuster à wchar_t. La ofstream est le même que basic_ofstream.

Les classes ifstream et ofstream fournir des constructeurs utilisés pour ouvrir un fichier pour entrée et de sortie, respectivement:

ifstream :: ifstream (const char * pszFileName, ios_base :: mode openmode = ios_base :: in) -ofstream :: ofstream (const char * pszFileName, ios_base :: mode openmode = ios_base :: out | ios_base :: tronc) -

Le premier argument est un pointeur sur le nom du fichier pour l'ouvrir. Le second argument spécifie le mode. Le type openmode est un type entier défini dans ios_base. En outre définie à l'intérieur ios_base sont les valeurs possibles pour mode énumérées dans ce tableau.

Ce sont des champs de bits que les RUP programmeur binaires ensemble. Le mode par défaut pour ifstream est d'ouvrir le fichier pour l'entrée avec le pointeur fixé au début du fichier (ce qui est assez logique).

Constantes qui contrôlent la façon dont les fichiers sont ouverts
DrapeauSignification
ios_base :: appChercher à fin-de-fichier avant chaque écriture.
ios_base :: mangéChercher à fin-de-fichier immédiatement après l'ouverture du fichier, si itexists.
ios_base :: binaireOuvrir le fichier en mode binaire (alternative est en mode texte).
ios_base :: dansOuvrir le fichier pour l'entrée (implicite pour istream).
ios_base :: outOuvrir le fichier pour la sortie (implicite pour ostream).
ios_base :: truncTronquer le fichier, si elle existe (par défaut pour ostream).

La valeur par défaut pour ofstream est d'ouvrir pour la sortie et de tronquer le fichier si elle existe déjà. L'alternative est de tronquer ios_base :: app, ce qui signifie ajouter de nouvelles sorties sur la fin du fichier si elle existe déjà. Les deux options créent un fichier si elle existe pas déjà.

Par exemple, ce qui suit StreamOutput programme ouvre le fichier MyName.txt puis écrit des informations importantes et absolument fidèle à ce fichier:

// StreamOutput - simple, sortie vers un fichier # include using namespace std-int main (int nNumberofArgs, char * pszArgs []) {ofstream mon ("MyName.txt") - ma lt; lt; "Stephen Davis est  n suave et beau" lt; lt; "et certainement pas de calvitie prématurée" lt; lt; endl-retour 0-}

Le destructeur pour les classes de flux de fichiers fermer automatiquement le fichier associé. Dans cet exemple simple, le MyName.txt dossier a été fermé lorsque le mon objet est allé hors de portée à son retour de main (). Les objets globaux sont fermés dans le cadre de la fin du programme.


» » » » Diffusez entrée / sortie en C ++