« Programmation C++/Les entrées-sorties » : différence entre les versions
Contenu supprimé Contenu ajouté
source cpp |
|||
Ligne 17 :
=== Exemple ===
<source lang="cpp">
#include <iomanip>
void main()
{
int n;
cout << "Entrez un nombre positif : "; </source>
== Autres types de flux ==
Ligne 35 ⟶ 37 :
=== Flux de fichier ===
La classe <tt>ifstream</tt> permet de lire à partir d'un fichier. Le constructeur a la syntaxe suivante :
<source lang="cpp">
ifstream(const char* filename, openmode mode=in)
</source>
Le paramètre <tt>mode</tt> peut être une combinaison des valeurs suivantes :
;<tt>app</tt>:('''app'''end) Placer le curseur à la fin du fichier avant écriture.
Ligne 45 ⟶ 49 :
Exemple 1 : lire un entier depuis un fichier
<source lang="cpp">
ifstream fichier("test.txt");
int a;
fichier >> a; // lire un entier
cout "A = " << a;
fichier.close();
</source>
Exemple 2 : afficher tous les caractères d'un fichier
<source lang="cpp">
ifstream fichier("test.txt");
while (fichier.good())
cout << (char) fichier.get(); </source>
La classe <tt>ofstream</tt> permet d'écrire vers un fichier. Son constructeur a une syntaxe similaire :
<source lang="cpp">
ofstream(const char* filename, openmode mode=out|trunc)
</source>
Exemple :
<source lang="cpp">
ofstream fichier("test.txt");
fichier.close();
</source>
La classe <tt>fstream</tt> dérive de la classe <tt>iostream</tt> permettant à la fois la lecture et l'écriture. Cette dernière (<tt>iostream</tt>) dérive donc à la fois de la classe <tt>ostream</tt> et de la classe <tt>istream</tt>. Son constructeur a la syntaxe suivante :
<source lang="cpp">
fstream(const char* filename, openmode mode=in|out)
</source>
Exemple :
<source lang="cpp">
fichier.close();
</source>
=== Flux de chaîne de caractères ===
Ligne 80 ⟶ 96 :
La classe <tt>istringstream</tt> dérivée de <tt>istream</tt> permet de lire à partir d'une chaîne de caractères, et possède deux constructeurs :
<source lang="cpp">
istringstream ( const string & str, openmode mode = in );
</source>
Exemple :
<source lang="cpp">
int n, val;
stringvalues = "125 320 512 750 333"; </source>
La classe <tt>ostringstream</tt> dérivée de <tt>ostream</tt> permet d'écrire pour créer une chaîne de caractères, et possède également deux constructeurs :
<source lang="cpp">
ostringstream ( const string & str, openmode mode = out );
</source>
Le second permet de spécifier le début de la chaîne de caractères produite.
Ligne 105 ⟶ 127 :
Exemple :
<source lang="cpp">
ostringstream oss (ostringstream::out);
oss << "Test d'écriture a=" << a << "\n"; </source>
La classe <tt>stringstream</tt> dérivée de <tt>iostream</tt> permet d'écrire et lire, et possède deux constructeurs :
<source lang="cpp">
stringstream ( const string & str, openmode mode = in | out );
</source>
Exemple :
<source lang="cpp">
int n,val;
stringstream ss (stringstream::in | stringstream::out);
// écriture
ss << "120 42 377 6 5 2000";
// lecture
for (int n=0;n<6;n++)
{
ss >> val;
cout << val << endl; </source>
== Manipulateurs ==
Ligne 136 ⟶ 164 :
Exemple:
<source lang="cpp">
cout << "Une première ligne" << endl << "Une deuxième ligne" << endl;
</source>
'''N.B.''': Certains compilateurs C++ (notamment Visual C++) ne supporte pas que le manipulateur <code>endl</code> soit suivi d'autres données à écrire. Dans ce cas, il faut écrire les données suivantes dans une nouvelle instruction :
<source lang="cpp">
cout << "Une deuxième ligne" << endl;
</source>
=== Manipulateur <tt>hex</tt> ===
Ligne 153 ⟶ 185 :
Exemple :
<source lang="cpp">
int a=200; // 200 en décimal
// affiche: Valeur de a en base 16 = C8
// affiche: Valeur de a en base 10 = 200
// affiche: Valeur de a en base 8 = 310
</source>
=== Manipulateur <tt>setw(''width'')</tt> ===
Ligne 168 ⟶ 202 :
Exemple :
<source lang="cpp">
int a=11;
cout << "Valeur de a = " << setw(5) << a << endl;
</source>
Ce code affiche :
Ligne 178 ⟶ 214 :
Exemple :
<source lang="cpp">
int a=11;
cout << "Valeur de a = " << setfill('x') << setw(5) << a << endl;
</source>
Ce code affiche :
Ligne 188 ⟶ 226 :
Exemple :
<source lang="cpp">
double f =3.14159;
cout << setprecision (9) << f << endl;
</source>
Ce code affiche :
|