<iostream>

Declara los objetos que controlan la lectura y escritura en los flujos estándar. Esta inclusión suele ser el único encabezado que necesita incluir para realizar la entrada y salida de un programa de C++.

Sintaxis

#include <iostream>

Nota:

La biblioteca <iostream> usa las instrucciones #include <ios>, #include <streambuf>, #include <istream> y #include <ostream>.

Comentarios

Los objetos se dividen en dos grupos:

  • cin, cout, cerr y clog están orientados a bytes y realizan transferencias convencionales byte por byte.

  • wcin, wcout, wcerr y wclog se orientan a caracteres anchos y traducen en ambas direcciones los caracteres anchos que el programa manipula internamente.

Tras realizar determinadas operaciones en un flujo, como la entrada estándar, no es posible realizar operaciones de otra orientación en el mismo flujo. Por lo tanto, un programa no puede funcionar indistintamente tanto con cin como con wcin, por ejemplo.

Todos los objetos que se declaran en este encabezado tienen en común una propiedad peculiar: se puede suponer que se construyen antes que cualquier objeto estático que se defina, en una unidad de traducción que incluye <iostream>. De igual manera, se puede suponer que estos objetos no se destruyen antes que los destructores de todos esos objetos estáticos que se definen. (Sin embargo, los flujos de salida se vacían durante la finalización del programa). Por lo tanto, puede leer o escribir sin ningún riesgo en los flujos estándar antes de iniciar el programa y después de la finalización del programa.

Pero esta garantía no es universal. Un constructor estático puede llamar a una función en otra unidad de traducción. La función a la que se llama no puede suponer que se han construido los objetos que se declaran en el encabezado, dada la incertidumbre del orden con el que las unidades de traducción participan en la construcción estática. Para usar esos objetos en este contexto, primero debe construir un objeto de clase ios_base::Init.

Objetos de flujo global

Nombre Descripción
cerr Especifica el flujo global cerr.
cin Especifica el flujo global cin.
clog Especifica el flujo global clog.
cout Especifica el flujo global cout.
wcerr Especifica el flujo global wcerr.
wcin Especifica el flujo global wcin.
wclog Especifica el flujo global wclog.
wcout Especifica el flujo global wcout.

cerr

El objeto cerr controla la salida a un búfer de flujo asociado al objeto stderr, declarado en <cstdio>.

extern ostream cerr;

Valor devuelto

Objeto ostream.

Comentarios

El objeto controla las inserciones no almacenadas en búfer en la salida de error estándar como un flujo de bytes. Una vez que se construye el objeto, la expresión cerr.flags & unitbuf es distinta de cero, y cerr.tie() == &cout. Para obtener más información, vea cerr.flags y unitbuf.

Ejemplo

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

Especifica el flujo global cin.

extern istream cin;

Valor devuelto

Objeto istream.

Comentarios

El objeto controla las extracciones de la entrada estándar como un flujo de bytes. Una vez que se construye el objeto, la llamada a cin.tie devuelve &cout.

Ejemplo

En este ejemplo, cin establece el bit de error en el flujo cuando encuentra caracteres no numéricos. El sistema borra el bit de error y quita el carácter no válido del flujo para continuar.

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

Especifica el flujo global clog.

extern ostream clog;

Valor devuelto

Objeto ostream.

Comentarios

El objeto controla las inserciones almacenadas en búfer en la salida de error estándar como un flujo de bytes.

Ejemplo

Vea cerr para obtener un ejemplo en el que se usa clog.

cout

Especifica el flujo global cout.

extern ostream cout;

Valor devuelto

Objeto ostream.

Comentarios

El objeto controla las inserciones en la salida estándar como un flujo de bytes.

Ejemplo

Vea cerr para obtener un ejemplo en el que se usa cout.

wcerr

Especifica el flujo global wcerr.

extern wostream wcerr;

Valor devuelto

Un objeto wostream.

Comentarios

El objeto controla las inserciones no almacenadas en búfer en la salida de error estándar como un flujo amplio. Una vez que se construye el objeto, la expresión wcerr.flags & unitbuf es distinta de cero. Para obtener más información, vea wcerr.flags y unitbuf.

Ejemplo

Vea cerr para obtener un ejemplo en el que se usa wcerr.

wcin

Especifica el flujo global wcin.

extern wistream wcin;

Valor devuelto

Un objeto wistream.

Comentarios

El objeto controla las extracciones de la entrada estándar como un flujo ancho. Una vez que se construye el objeto, la llamada a wcin.tie devuelve &wcout.

Ejemplo

Vea cerr para obtener un ejemplo en el que se usa wcin.

wclog

Especifica el flujo global wclog.

extern wostream wclog;

Valor devuelto

Un objeto wostream.

Comentarios

El objeto controla las inserciones almacenadas en búfer en la salida de error estándar como un flujo ancho.

Ejemplo

Vea cerr para obtener un ejemplo en el que se usa wclog.

wcout

Especifica el flujo global wcout.

extern wostream wcout;

Valor devuelto

Un objeto wostream.

Comentarios

El objeto controla las inserciones en la salida estándar como secuencia amplia.

Ejemplo

Vea cerr para obtener un ejemplo en el que se usa wcout.

Las instancias CString de una instrucción wcout deben convertirse a const wchar_t*, como se muestra en el siguiente ejemplo.

CString cs("meow");

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

Para obtener más información, vea Operaciones básicas de CString.

Consulte también

Referencia de archivos de encabezado
Seguridad para subprocesos en la biblioteca estándar de C++
Programación con iostream
Convenciones de iostreams