En C++, les entrées et sorties (E/S) sont gérées via des flux (streams) : des séquences d'octets qui circulent entre le programme et les périphériques (clavier, écran, fichier…). La bibliothèque standard fournit tout le nécessaire dans les fichiers d'en-tête suivants.
Fichiers d'en-tête E/S
| En-tête | Contenu |
|---|---|
<iostream> | Objets de flux standards : cin, cout, cerr, clog |
<iomanip> | Manipulateurs de flux formatés : setw, setprecision, fixed… |
<fstream> | Flux de fichiers : ifstream, ofstream, fstream |
Flux de sortie — cout
cout est l'instance de la classe ostream connectée à la sortie standard (écran). On y insère des données avec l'opérateur << (opérateur d'insertion).Exemple
#include <iostream>
using namespace std;
int main()
{
int age = 20;
cout << "Bonjour !" << endl;
cout << "Age : " << age << endl; // cout détecte automatiquement le type
return 0;
}Bonjour ! Age : 20
cout << "x = " << x << ", y = " << y << endl; endl insère un saut de ligne et vide le tampon.Flux d'entrée — cin
cin est l'instance de la classe istream connectée à l'entrée standard (clavier). On en extrait des données avec l'opérateur >> (opérateur d'extraction).Exemple 1 — lire une chaîne
#include <iostream>
using namespace std;
int main()
{
char nom[50];
cout << "Saisir votre nom : ";
cin >> nom;
cout << "Bonjour " << nom << endl;
return 0;
}Saisir votre nom : Mostafa Bonjour Mostafa
Exemple 2 — lire plusieurs valeurs
char nom[50];
int age;
cout << "Nom et age : ";
cin >> nom >> age; // chaînage de l'opérateur >>
cout << "Nom = " << nom << " - Age = " << age << endl;Nom et age : Mostafa 32 Nom = Mostafa - Age = 32
Flux d'erreur — cerr
cerr est connecté à la sortie d'erreur standard. Contrairement à cout, il est non mis en mémoire tampon : chaque message s'affiche immédiatement, sans attendre que le tampon soit plein.Exemple
#include <iostream>
using namespace std;
int main()
{
cerr << "Erreur : impossible de trouver le fichier." << endl;
return 0;
}Erreur : impossible de trouver le fichier.
Flux de journaux — clog
clog est également connecté à la sortie d'erreur, mais il est mis en mémoire tampon : les messages sont accumulés dans un tampon et n'apparaissent qu'une fois le tampon plein ou vidé explicitement. Cela le rend plus performant pour les messages de journalisation fréquents.Exemple
clog << "Log : démarrage du module de traitement." << endl;Résumé comparatif des flux
| Objet | Classe | Destination | Mis en tampon ? | Usage recommandé |
|---|---|---|---|---|
cout | ostream | Sortie standard | Oui | Affichage normal |
cin | istream | Entrée standard | Oui | Lecture clavier |
cerr | ostream | Erreur standard | Non | Messages d'erreur immédiats |
clog | ostream | Erreur standard | Oui | Journalisation (logs) |
cerr pour les messages d'erreur critiques (affichage immédiat garanti) et clog pour les traces de journalisation non urgentes (meilleure performance grâce au tampon).
Discussion (0)
Soyez le premier à laisser un commentaire !
Laisser un commentaire
Votre commentaire sera visible après modération.