Généralités sur les flux
Flots et classes
Le flot de sortie : ostream
Principales méthodes de ostream
Le flot d’entrée : istream
Principales méthodes de istream
Contrôle de l’état d’un flux
Associer un flot d’E/S à un fichier
Formatage de l’information
Les manipulateurs
Généralités sur les flux
Un flux(ou stream) est une abstraction logicielle représentant un flot de données entre :
une source produisant de l’information
une cible consommant cette information.
Il peut être représenté comme un buffer et des mécanismes associés à celui−ci et il prend en charge, quand le flux est créé, l’acheminement de ces données.
Comme pour le langage C, les instructions entrées/sorties ne font pas partie des instructions du langage. Elles sont dans une librairie standardisée qui implémente les flots à partir de classes.
Flots et classes
ios: classe de base des entrées/sorties par flot. Elle contient un objet de la classe
streambufpour la gestion des tampons d’entrées/sorties.
istream: classe dérivée de iospour les flots en entrée.
ostream: classe dérivée de iospour les flots en sortie.
iostream: classe dérivée de istreamet de ostreampour les flots bidirectionnels.
istream_withassign, ostream_withassignet iostream_withassign: classes dérivées respectivement de istream, ostreamet iostreamet qui ajoute l’opérateur d’affectation. Les flots standards cin, coutet cerrsont des instances de ces classes.
Le flot de sortie : ostream
- Il fournit des sorties formatées et non formatées (dans un streambuf)
- Surdéfinition de l’opérateur <<
- Il gère les types prédéfinis du langage C++
- On peut (doit) le surdéfinir pour ses propres types
Surdéfinition de l’opérateur d’injection dans un flot :
Exemple :
class Exemple {
friend ostream &operator<<(ostream &os, const Exemple &ex);
public :
// …
private :
char _nom[20];
int _valeur;
};
ostream &operator<<(ostream &os, const Exemple &ex) {
return os << ex._nom << » » << ex._valeur;
}
void main() {
Exemple e1;
// …
cout << « Exemple = » << e1 << endl;
// …
}
…
Cours langage C (1.44 MB) (Cours PDF)