Condividi tramite


<iostream>

Dichiara gli oggetti che controllano la lettura e la scrittura nei flussi standard. Questo include è spesso l'unica intestazione necessaria per eseguire input e output da un programma C++.

Sintassi

#include <iostream>

Nota

La <iostream> libreria usa le #include <ios>istruzioni , #include <streambuf>#include <istream>, e #include <ostream> .

Osservazioni:

Gli oggetti rientrano in due gruppi:

  • cincerr, cout, e clog sono orientati ai byte, eseguendo trasferimenti di byte convenzionali in fase di esecuzione.

  • wcin, wcout, wcerre wclog sono orientati a livello, traducendo in e dai caratteri wide che il programma manipola internamente.

Dopo aver eseguito determinate operazioni su un flusso, ad esempio l'input standard, non è possibile eseguire operazioni di orientamento diverso nello stesso flusso. Pertanto, un programma non può operare in modo intercambiabile su e cin wcin, ad esempio.

Tutti gli oggetti dichiarati in questa intestazione condividono una proprietà peculiare: è possibile presupporre che vengano costruiti prima di qualsiasi oggetto statico definito, in un'unità di conversione che include <iostream>. Allo stesso modo, è possibile presupporre che questi oggetti non vengano eliminati definitivamente prima dei distruttori per gli oggetti statici definiti dall'utente. I flussi di output vengono tuttavia scaricati durante la terminazione del programma. Pertanto, è possibile leggere o scrivere in modo sicuro nei flussi standard prima dell'avvio del programma e dopo la chiusura del programma.

Questa garanzia non è tuttavia universale. Un costruttore statico potrebbe chiamare una funzione in un'altra unità di conversione. La funzione chiamata non può presupporre che gli oggetti dichiarati in questa intestazione siano stati costruiti, data l'ordine incerto in cui le unità di conversione partecipano alla costruzione statica. Per usare questi oggetti in un contesto di questo tipo, è prima necessario costruire un oggetto della classe ios_base::Init.

Oggetti dei flussi globali

Nome Descrizione
cerr Specifica il flusso globale cerr.
cin Specifica il flusso globale cin.
clog Specifica il flusso globale clog.
cout Specifica il flusso globale cout.
wcerr Specifica il flusso globale wcerr.
wcin Specifica il flusso globale wcin.
wclog Specifica il flusso globale wclog.
wcout Specifica il flusso globale wcout.

cerr

L'oggetto cerr controlla l'output in un buffer di flusso associato all'oggetto stderr, dichiarato in <cstdio>.

extern ostream cerr;

Valore restituito

Oggetto ostream.

Osservazioni:

L'oggetto controlla eventuali inserimenti senza buffer nell'output di errore standard come un flusso di byte. Una volta costruito l'oggetto, l'espressione cerr.flags & unitbuf è diversa da zero e cerr.tie() == &cout. Per altri dettagli, vedere cerr.flags e unitbuf.

Esempio

// 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

Specifica il flusso globale cin.

extern istream cin;

Valore restituito

Oggetto istream.

Osservazioni:

L'oggetto controlla eventuali estrazioni dall'input standard come un flusso di byte. Una volta costruito l'oggetto, la chiamata cin.tie restituisce &cout.

Esempio

In questo esempio, cin imposta il bit di errore nel flusso quando si tratta di caratteri non numerici. Il programma cancella il bit di errore e rimuove il carattere non valido dal flusso per continuare.

// 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

Specifica il flusso globale clog.

extern ostream clog;

Valore restituito

Oggetto ostream.

Osservazioni:

L'oggetto controlla eventuali inserimenti con buffer nell'output di errore standard come un flusso di byte.

Esempio

Vedere cerr per un esempio di uso clogdi .

cout

Specifica il flusso globale cout.

extern ostream cout;

Valore restituito

Oggetto ostream.

Osservazioni:

L'oggetto controlla eventuali inserimenti nell'output standard come un flusso di byte.

Esempio

Vedere cerr per un esempio di uso coutdi .

wcerr

Specifica il flusso globale wcerr.

extern wostream wcerr;

Valore restituito

Oggetto wostream.

Osservazioni:

L'oggetto controlla gli inserimenti senza buffer nell'output di errore standard come un flusso wide. Una volta costruito l'oggetto, l'espressione wcerr.flags & unitbuf è diversa da zero. Per altri dettagli, vedere wcerr.flags e unitbuf.

Esempio

Vedere cerr per un esempio di uso wcerrdi .

wcin

Specifica il flusso globale wcin.

extern wistream wcin;

Valore restituito

Oggetto wistream.

Osservazioni:

L'oggetto controlla eventuali estrazioni dall'input standard come un flusso wide. Una volta costruito l'oggetto, la chiamata wcin.tie restituisce &wcout.

Esempio

Vedere cerr per un esempio di uso wcindi .

wclog

Specifica il flusso globale wclog.

extern wostream wclog;

Valore restituito

Oggetto wostream.

Osservazioni:

L'oggetto controlla eventuali inserimenti con buffer nell'output di errore standard come un flusso wide.

Esempio

Vedere cerr per un esempio di uso wclogdi .

wcout

Specifica il flusso globale wcout.

extern wostream wcout;

Valore restituito

Oggetto wostream.

Osservazioni:

L'oggetto controlla gli inserimenti nell'output standard come flusso wide.

Esempio

Vedere cerr per un esempio di uso wcoutdi .

Il cast delle istanze CString in un'istruzione wcout deve essere eseguite in const wchar_t*, come mostrato nel seguente esempio.

CString cs("meow");

wcout <<(const wchar_t*) cs <<endl;

Per altre informazioni, vedere Operazioni CString di base.

Vedi anche

Riferimento file di intestazione
Thread Safety in the C++ Standard Library (Sicurezza dei thread nella libreria standard C++)
Programmazione iostream
iostreams Conventions (Convenzioni di iostream)