Nintendo-city
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.


Retrouvez l'univers nintendo sous toutes ses faces !!
 
AccueilPortailDernières imagesS'enregistrerConnexion
-15%
Le deal à ne pas rater :
(Adhérents) LEGO® Icons 10318 Le Concorde
169.99 € 199.99 €
Voir le deal

 

 Fichiers et flux

Aller en bas 
AuteurMessage
Sorell
Stratège
Sorell


Masculin
Nombre de messages : 521
Localisation : Quel part où le sang coule.
Date d'inscription : 01/05/2008

Feuille de personnage
Surnom dans la team: Sénéchal Noir
Victoire/défaite:
Fichiers et flux Left_bar_bleue0/0Fichiers et flux Empty_bar_bleue  (0/0)

Fichiers et flux Empty
MessageSujet: Fichiers et flux   Fichiers et flux Icon_minitimeLun 17 Déc - 13:17

Fichiers et flux

Les fichiers peuvent être considérés comme des flux d'octets, et les différentes classes et fonctions disponibles sont déclarés dans le fichier fstream. Les classes basic_ifstream et basic_ofstream sont dérivées respectivement des classes basic_istream et basic_ostream (voir le schéma ci-dessus).

Il existe aussi une classe fstream, qui dérive de la classe basic_iostream. Les fichiers de cette classe permettent donc les opérations de lecture et d'écriture.

Ces classes possèdent chacune deux constructeurs :

  • l'un, ayant comme premier paramètre le nom du fichier (une chaîne de caractères NTCTS) ainsi que des options facultatives prises parmi les constantes prédéfinies de type openmode (fourni dans la classe mère ios) suivantes :
    Code:
    static const openmode app;    // append mode : toutes les écritures
                                  //  sont effectuées en fin de fichier
    static const openmode ate;    // atend mode : positionne le pointeur
                                  //  du fichier en fin dès l'ouverture
    static const openmode binary;  // fichier binaire (non traité comme
                                  //  un fichier texte)
    static const openmode in;      // ouvre le fichier en lecture
    static const openmode out;    // ouvre le fichier en écriture
    static const openmode trunc;  // tronque le fichier s'il existe à
                                  //  l'ouverture

    crée l'objet flux et ouvre le fichier correspondant dans le mode indiqué. Par exemple :

    Code:
    #include <iostream>  // pour la classe ios
    #include <fstream>  // pour les classes ifstream et ofstream
    // ...

    ifstream FicIn  ("Source");
    ofstream  FicOut ("Dest", ios::out | ios::app);
    crée les objets FicIn et FicOut, ouvre le fichier Source en lecture (mode choisi par défaut) et le fichier Dest en écriture en se plaçant à la fin du fichier dès l'ouverture.

    On remarquera l'utilisation de l'opérateur booléen | pour combiner plusieurs options.

    On remarquera aussi l'utilisation de l'opérateur de résolution de portée :: indiquant l'appartenance des identificateurs out et app à la classe ios (et non à un objet de la classe).

    Certaines implémentations offrent quelques options supplémentaires pour l'ouverture des fichiers en écriture, comme :
    ° nocreate : l'ouverture du fichier échoue si le fichier n'existe pas,
    ° noreplace : l'ouverture échoue si le fichier existe déjà.

  • l'autre, sans paramètre (donc constructeur par défaut), qui permet seulement de construire un flux sans lui associer un fichier (et donc sans l'ouvrir). Ce constructeur est utilisé lorsque le nom du fichier n'est pas encore connu. Il nécessite l'utilisation ultérieure de la fonction open() ci-dessous.


Quelques fonctions supplémentaires sont offertes par ces classes :
  • open(), de profils :
    Code:
    void open (const char* s, ios_base::openmode mode = ios_base::in);
    void open (const char* s, ios_base::openmode mode = ios_base::out);
    void open (const char* s, ios_base::openmode mode =
                                        ios_base::in | ios_base::out);
    respectivement pour les classes ifstream, ofstream et fstream.

  • close(),

  • bool is_open(),

  • attach() (non standard mais qui existe dans certaines implémentations) qui permet d'associer un flux à un identificateur de fichier (fileid) ainsi que plusieurs fonctions en rapport avec l'utilisation des buffers.
Revenir en haut Aller en bas
 
Fichiers et flux
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» TP Exercice 3 - Lecture du nom des fichiers au clavier
» TP3 - Les flux
» TP3 Exercice 1 - Flux standard cin considéré comme un fichier

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Nintendo-city :: Informatique :: Section C++ :: Ressources-
Sauter vers: