Parcours séquentiel

 

   Ouvrir(descr, "nom-fic-physique", mode)

   Lire(descr, val)                                 {initialisation}

   Tant que (non eof(descr)) faire

        {traitement}

        Lire(descr,val)                         {initialisation}

   ftq

   Fermer(descr)

 

Echanges prog « terminal : flots d'E/S

classe iostream

objets : cin, cout, cr

 

Echanges prog « fichier : flots de fichiers

classe fstream

 

Echanges prog « buffer : flots de chaînes de caractères

classe strstream

 

Similitudes Þ mêmes opérations

Ex : cin.good()

objet.good()  

objet.clear()

objet<<

objet>>

objet.get()

 

Rq : toutes les opés de lecture, éciture, etc d'un fichier se font par l'intermédiaire d'un descr de fichier

 

#include <fstream.h>

 

Déclarer un descr de fichier

 

Déclarer un descr de fichier en écriture

ofstream descrFicOut;

 

Déclarer un descr de fichier en écriture + associer le fic physique

ofstream descrFicOut("nom-fic-physique);

 

Déclarer un descr de fichier en lecture

ifstream descrFicIn;

 

Déclarer un descr de fichier en lecture + associer le fic physique

ifstream descrFinIn("nom-fic-physique");

 

Déclarer un descr de fichier en lecture-écriture

fstream descrFic;

 

Déclarer un descr de fichier en lecture-écriture + associer le fic physique

fstream descrFic("nom-fic-physique");

 

Lire

Lecture d'un fichier

descrFicIn>>val;

 

Lecture non formatée

descrFic.read((char*) &val, sizeof(val))

Û on lit la valeur val d'adresse &val et de taille sizeof(val)

 

Ecrire

Ecrire une valeur dans un fichier

descrFicOut<<val;

 

Ecrire une valeur à partir d'une adresse

descrFic.write((typeVal*) &val, sizeof(val));

typeVal* = type pointeur (i.e. adresse) sur typeVal

Ex : char* = type pointeur sur caractères

Û on écrit dans le fichier la valeur val d'adresse &val et de taille sizeof(val)

 

Ouvrir un fichier

descrFic.open(nom-fic-physique);

 

Fermer un fichier

descrFic.close();

 

Test de fin de fichier

descrFic.eof()

retourne booléen

 

Rq :

lire(fichier vide) Þ erreur, mais eof() devient vrai