<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
yclog
están orientados a bytes y realizan transferencias convencionales byte por byte.wcin
,wcout
,wcerr
ywclog
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