<iostream>
Déclare des objets qui contrôlent la lecture et l'écriture des flux standard. Cela inclut souvent le seul en-tête dont vous avez besoin pour effectuer des entrées et des sorties à partir d’un programme C++.
Syntaxe
#include <iostream>
Remarque
La <iostream>
bibliothèque utilise les instructions, les #include <streambuf>
#include <istream>
instructions et #include <ostream>
les #include <ios>
instructions.
Notes
Les objets se répartissent en deux groupes :
cin
,cout
,cerr
etclog
sont orientés octets, effectuant des transferts d’octets classiques à temps.wcin
,wcout
,wcerr
etwclog
sont orientés vers et à partir des caractères larges que le programme manipule en interne.
Une fois que vous avez fait certaines opérations sur un flux, telles que l’entrée standard, vous ne pouvez pas effectuer d’opérations d’une orientation différente sur le même flux. Par conséquent, un programme ne peut pas fonctionner de manière interchangeable sur les deux cin
et wcin
, par exemple.
Tous les objets déclarés dans cet en-tête partagent une propriété particulière . Vous pouvez supposer qu’ils sont construits avant tous les objets statiques que vous définissez, dans une unité de traduction qui inclut <iostream>
. De même, vous pouvez supposer que ces objets ne sont pas détruits avant les destructeurs pour les objets statiques que vous définissez. (Toutefois, les flux de sortie sont vidés pendant l’arrêt du programme.) Par conséquent, vous pouvez lire ou écrire en toute sécurité dans les flux standard avant le démarrage du programme et après l’arrêt du programme.
Cette garantie n’est cependant pas universelle. Un constructeur statique peut appeler une fonction dans une autre unité de traduction. La fonction appelée ne peut pas supposer que les objets déclarés dans cet en-tête ont été construits, compte tenu de l’ordre incertain dans lequel les unités de traduction participent à la construction statique. Pour utiliser ces objets dans un tel contexte, vous devez d’abord construire un objet de classe ios_base::Init
.
Objets de flux global
Nom | Description |
---|---|
cerr |
Spécifie le flux global cerr . |
cin |
Spécifie le flux global cin . |
clog |
Spécifie le flux global clog . |
cout |
Spécifie le flux global cout . |
wcerr |
Spécifie le flux global wcerr . |
wcin |
Spécifie le flux global wcin . |
wclog |
Spécifie le flux global wclog . |
wcout |
Spécifie le flux global wcout . |
cerr
L’objet cerr
contrôle la sortie vers une mémoire tampon de flux associée à l’objet stderr
, déclarée dans <cstdio>
.
extern ostream cerr;
Valeur de retour
Objet ostream
.
Notes
L’objet contrôle les insertions non mises en mémoire tampon dans la sortie d’erreur standard sous forme de flux d’octets. Une fois l’objet construit, l’expression cerr.flags & unitbuf
est différente de zéro et cerr.tie() == &cout
. Pour plus d'informations, consultez cerr.flags
et unitbuf
.
Exemple
// iostream_cerr.cpp
// compile with: /EHsc
#include <iostream>
#include <fstream>
using namespace std;
void TestWide( )
{
int i = 0;
wcout << L"Enter a number: ";
wcin >> i;
wcerr << L"test for wcerr" << endl;
wclog << L"test for wclog" << endl;
}
int main( )
{
int i = 0;
cout << "Enter a number: ";
cin >> i;
cerr << "test for cerr" << endl;
clog << "test for clog" << endl;
TestWide( );
}
cin
Spécifie le flux global cin
.
extern istream cin;
Valeur de retour
Objet istream
.
Notes
L’objet contrôle les extractions à partir de l’entrée standard en tant que flux d’octets. Une fois l’objet construit, l’appel cin.tie
retourne &cout
.
Exemple
Dans cet exemple, cin
définit le bit d’échec sur le flux lorsqu’il se trouve entre des caractères non numériques. Le programme efface le bit d’échec et supprime le caractère non valide du flux pour continuer.
// iostream_cin.cpp
// compile with: /EHsc
#include <iostream>
using namespace std;
int main()
{
int x;
cout << "enter choice:";
cin >> x;
while (x < 1 || x > 4)
{
cout << "Invalid choice, try again:";
cin >> x;
// not a numeric character, probably
// clear the failure and pull off the non-numeric character
if (cin.fail())
{
cin.clear();
char c;
cin >> c;
}
}
}
2
clog
Spécifie le flux global clog
.
extern ostream clog;
Valeur de retour
Objet ostream
.
Notes
L’objet contrôle les insertions mises en mémoire tampon dans la sortie d’erreur standard sous forme de flux d’octets.
Exemple
Consultez cerr
un exemple d’utilisation clog
.
cout
Spécifie le flux global cout
.
extern ostream cout;
Valeur de retour
Objet ostream
.
Notes
L’objet contrôle les insertions dans la sortie standard sous forme de flux d’octets.
Exemple
Consultez cerr
un exemple d’utilisation cout
.
wcerr
Spécifie le flux global wcerr
.
extern wostream wcerr;
Valeur de retour
Objet wostream
.
Notes
L’objet contrôle les insertions non mises en mémoire tampon dans la sortie d’erreur standard sous forme de flux large. Une fois l’objet construit, l’expression wcerr.flags & unitbuf
n’est pas nulle. Pour plus d'informations, consultez wcerr.flags
et unitbuf
.
Exemple
Consultez cerr
un exemple d’utilisation wcerr
.
wcin
Spécifie le flux global wcin
.
extern wistream wcin;
Valeur de retour
Objet wistream
.
Notes
L’objet contrôle les extractions à partir de l’entrée standard en tant que flux large. Une fois l’objet construit, l’appel wcin.tie
retourne &wcout
.
Exemple
Consultez cerr
un exemple d’utilisation wcin
.
wclog
Spécifie le flux global wclog
.
extern wostream wclog;
Valeur de retour
Objet wostream
.
Notes
L’objet contrôle les insertions mises en mémoire tampon dans la sortie d’erreur standard sous forme de flux large.
Exemple
Consultez cerr
un exemple d’utilisation wclog
.
wcout
Spécifie le flux global wcout
.
extern wostream wcout;
Valeur de retour
Objet wostream
.
Notes
L'objet contrôle les insertions dans la sortie standard sous forme de flux large.
Exemple
Consultez cerr
un exemple d’utilisation wcout
.
Les instances de CString
dans une instruction wcout
doivent être converties en const wchar_t*
, comme illustré dans l'exemple suivant.
CString cs("meow");
wcout <<(const wchar_t*) cs <<endl;
Pour plus d’informations, consultez Opérations CString de base.
Voir aussi
Informations de référence sur les fichiers d’en-tête
Sécurité des threads dans la bibliothèque C++ Standard
iostream, programmation
iostreams, conventions