Photographie/Fabricants/Chinon
Programmation C++/Les entrées-sorties
Classes de gestion des flux.
Les entrées et sorties sont gérées par deux classes définies dans le fichier d'en-tête codice_1 :
Flux standards.
Trois instances de ces classes représentent les flux standards :
Ces objets sont définis dans l'espace de nom codice_11.
Exemple.
using namespace std;
int main()
 int n;
 cout « "Entrez un nombre positif : ";
 cin » n;
 if (n<0) cerr « "Erreur: Le nombre " « n
 « " n'est pas positif " « endl;
 else cout « "Vous avez entré " « n « endl;
 return 0;
Autres types de flux.
Les instances des classes dérivées des classes codice_4 et codice_2 sont également manipulés avec les opérateurs codice_3 et codice_5.
Cependant, il ne faut pas oublier de les fermer en appelant la méthode codice_16.
Note: Les noms de fichiers sont codés sur 8 bits sous Linux/Unix et sur 16 bits sur Windows, ce qui peut induire des problèmes de portabilité, le cas échéant.
Flux de fichier.
La classe codice_17 permet de lire à partir d'un fichier.
Le constructeur a la syntaxe suivante :
ifstream(const char* filename, openmode mode=in)
Le paramètre codice_18 peut être une combinaison des valeurs suivantes :
Exemple 1 : lire un entier depuis un fichier
ifstream fichier("test.txt");
int a;
fichier » a; // lire un entier
cout « "A = " « a;
fichier.close();
Exemple 2 : afficher tous les caractères d'un fichier
ifstream fichier("test.txt");
while (fichier.good())
 cout « (char) fichier.get();
fichier.close();
La classe codice_25 permet d'écrire vers un fichier. Son constructeur a une syntaxe similaire :
ofstream(const char* filename, openmode mode=out|trunc)
Exemple :
ofstream fichier("test.txt");
fichier « setw(10) « a « endl;
fichier.close();
La classe codice_26 dérive de la classe codice_27 permettant à la fois la lecture et l'écriture.
Cette dernière (codice_27) dérive donc à la fois de la classe codice_2 et de la classe codice_4.
Son constructeur a la syntaxe suivante :
fstream(const char* filename, openmode mode=in|out)
Exemple :
fstream fichier("test.txt");
fichier « setw(10) « a « endl;
fichier.seekg(0, ios_base::beg);
fichier » b;
fichier.close();
Flux de chaîne de caractères.
Ces flux permettent d'écrire pour produire une chaîne de caractères, ou de lire à partir d'une chaîne de caractères.
La classe codice_31 dérivée de codice_4 permet de lire à partir d'une chaîne de caractères, et possède deux constructeurs :
istringstream ( openmode mode = in );
istringstream ( const string & str, openmode mode = in );
Exemple :
int n, val;
string stringvalues;
stringvalues = "125 320 512 750 333";
istringstream iss (stringvalues, istringstream::in);
for (n = 0; n < 5; n++)
 iss » val;
 cout « val « endl;
La classe codice_33 dérivée de codice_2 permet d'écrire pour créer une chaîne de caractères, et possède également deux constructeurs :
ostringstream ( openmode mode = out );
ostringstream ( const string & str, openmode mode = out );
Le second permet de spécifier le début de la chaîne de caractères produite.
La méthode codice_35 retourne la chaîne de caractères produite.
Exemple :
ostringstream oss (ostringstream::out);
int a = 100;
oss « "Test d'écriture a=" « a « "\n";
cout « oss.str();
La classe codice_36 dérivée de codice_27 permet d'écrire et lire, et possède deux constructeurs :
stringstream ( openmode mode = in | out );
stringstream ( const string & str, openmode mode = in | out );
Exemple :
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;
Manipulateurs.
Le fichier d'en-tête codice_38 définit des manipulateurs de flux tels que codice_39, codice_40.
Ces manipulateurs modifient la façon d'écrire ou lire les données qui suivent celui-ci.
Manipulateur codice_39.
Ce manipulateur écrit un retour à la ligne dans le flux, quel qu'il soit (codice_42 pour Windows, codice_43 pour Unix/Linux, codice_44 pour Mac, ...).
Il est donc conseillé de l'utiliser au lieu du/des caractère(s) correspondant(s), si la portabilité de votre application joue un rôle important.
Exemple:
cout « "Une première ligne" « endl « "Une deuxième ligne" « endl;
N.B.: Certains compilateurs C++ (notamment Visual C++) ne supporte pas que le manipulateur codice_39 soit suivi d'autres données à écrire. Dans ce cas, il faut écrire les données suivantes dans une nouvelle instruction :
cout « "Une première ligne" « endl;
cout « "Une deuxième ligne" « endl;
Manipulateur codice_40.
Ce manipulateur indique que les prochains entiers sont à lire ou écrire en base hexadécimale.
Manipulateur codice_47.
Ce manipulateur indique que les prochains entiers sont à lire ou écrire en base décimale.
Manipulateur codice_48.
Les 2 manipulateurs précédents sont des alias de celui-ci, qui permet de spécifier la base des prochains entiers à lire ou écrire.
Exemple :
int a = 200; // 200 en décimal
cout « "Valeur de a en base 16 = " « setbase(16) « a « endl;
// affiche: Valeur de a en base 16 = C8
cout « "Valeur de a en base 10 = " « setbase(10) « a « endl;
// affiche: Valeur de a en base 10 = 200
cout « "Valeur de a en base 8 = " « setbase(8) « a « endl;
// affiche: Valeur de a en base 8 = 310
Manipulateur codice_49.
Ce manipulateur indique que les prochaines données doivent être écrites sur le nombre de caractères indiqué, en ajoutant des caractères espaces avant.
Exemple :
int a = 11;
cout « "Valeur de a = " « setw(5) « a « endl;
Ce code affiche :
 Valeur de a = 11
Manipulateur codice_50.
Ce manipulateur modifie le caractère utilisé pour compléter les données utilisant le manipulateur codice_51.
Exemple :
int a = 11;
cout « "Valeur de a = " « setfill('x') « setw(5) « a « endl;
Ce code affiche :
 Valeur de a = xxx11
Manipulateur codice_52.
Ce manipulateur spécifie que les prochains nombres à virgule flottante doivent être écrits avec la précision donnée. La précision donne le nombre maximum de chiffres à écrire (avant et après la virgule).
Exemple :
double f = 3.14159;
cout « setprecision (5) « f « endl;
cout « setprecision (9) « f « endl;
Ce code affiche :
 3.1416
 3.14159
Manipulateurs codice_53 et codice_54.
Le manipulateur codice_53 (resp. codice_54) active (resp. désactive) des options de format des données.
Ces deux manipulateurs possèdent un argument dont le type est défini par l'énumération codice_57.
Cet argument peut être :

Analyser un tableau statistique
Un tableau statistique est une représentation chiffrée d'une étude selon une ou plusieurs variables, chacune caractérisée par une ou plusieurs modalités.
Introduction.
Quels sont les éléments à prendre en compte ?
Il précise la nature du phénomène à étudier.
La date.
Le jour de parution du tableau statistique.
La source.
L'auteur ou l'institut concerné qui a produit le document.
Les variables.
C'est-à-dire les critères de rangement du tableau en lignes et en colonnes.
L'unité.
Des personnes, des votes, des euros, des volumes, des valeurs etc.
Brouillon.
Le thème étudié.
À quel chapitre économique général ou d'entreprise se rapporte le tableau statistique ? Se servir des notions vues en cours. 
Développement.
En 2 ou 3 parties.
Distinguer l'essentiel.
Ne pas recopier bêtement les données chiffrées. Visualiser une tendance.
Transformer le tableau.
En texte ou en graphique.
Donner des exemples.
En rapport avec le thème étudié et l'actualité économique.
Conclusion.
Répondre à la problématique majeure soulevée par le document statistique. Élargir le débat.

Apprendre à cuisiner/Techniques/Battre les blancs d'œufs en neige