Espacios de nombres
Variantes
Acciones

C++ incluye dos bibliotecas de entrada/salida: una biblioteca de E/S moderna, basada en flujos, y el conjunto de funciones estándar de E/S estilo C.

E/S basada en flujos

La biblioteca de entrada/salida basada en flujos se organiza en torno a dispositivos abstractos de entrada/salida. Estos dispositivos abstractos permiten que el mismo código maneje la entrada/salida a archivos, flujos de memoria o dispositivos adaptadores personalizados que realizan operaciones arbitrarias (p. ej., compresión) al instante.

La mayoría de las clases son plantillas, así que pueden adaptarse a cualquier tipo básico de carácter. Se proporcionan definiciones de tipo para los tipos básicos de carácter más comunes (char y wchar_t). Las clases se organizan en la siguiente jerarquía:

cpp/io/ios basecpp/io/basic ioscpp/io/basic istreamcpp/io/basic ifstreamcpp/io/basic istringstreamcpp/io/basic ostreamcpp/io/basic ofstreamcpp/io/basic ostringstreamcpp/io/basic fstreamcpp/io/basic stringstreamcpp/io/basic iostream

Inheritance diagram

Abstracción
Definido en el archivo de encabezado <ios>
Maneja el formato de banderas y las excepciones de entrada/salida.
(clase)
Administra un búfer de flujo arbitrario.
(plantilla de clase)
Definido en el archivo de encabezado <streambuf>
Abstrae un dispositivo puro.
(plantilla de clase)
Definido en el archivo de encabezado <ostream>
Envuelve un dispositivo abstracto dado (std::basic_streambuf)
y proporciona una interfaz de salida de alto nivel.
(plantilla de clase)
Definido en el archivo de encabezado <istream>
Envuelve un dispositivo abstracto dado (std::basic_streambuf)
y proporciona una interfaz de entrada de alto nivel.
(plantilla de clase)
Envuelve un dispositivo abstracto dado (std::basic_streambuf)
y proporciona una interfaz de entrada/salida de alto nivel.
(plantilla de clase)
Implementación de E/S de archivos
Definido en el archivo de encabezado <fstream>
Implementa un dispositivo de archivo puro.
(plantilla de clase)
Implementa operaciones de entrada de flujo de archivo de alto nivel.
(plantilla de clase)
Implementa operaciones de salida de flujo de archivo de alto nivel.
(plantilla de clase)
Implementa operaciones de entrada/salida de flujo de archivo de alto nivel.
(plantilla de clase)
Implementación de E/S de cadenas
Definido en el archivo de encabezado <sstream>
Implementa un dispositivo de cadena puro.
(plantilla de clase)
Implementa operaciones de entrada de flujo de cadena de alto nivel.
(plantilla de clase)
Implementa operaciones de salida de flujo de cadena de alto nivel.
(plantilla de clase)
Implementa operaciones de entrada/salida de flujo de cadena de alto nivel.
(plantilla de clase)
Implementaciones de E/S de arrays
Definido en el archivo de encabezado <spanstream>
Implementa un dispositivo de búfer de caracteres sin formato.
(plantilla de clase)
Implementa operaciones de entrada de búfer de caracteres fijas.
(plantilla de clase)
Implementa operaciones de salida de búfer de caracteres fijas.
(plantilla de clase)
Implementa operaciones de entrada/salida de búfer de caracteres fijas.
(plantilla de clase)
Definido en el archivo de encabezado <strstream>
(en desuso en C++98)
Implementa un dispositivo de array de caracteres puro.
(clase)
(en desuso en C++98)
Implementa operaciones de entrada de arrays de caracteres.
(clase)
(en desuso en C++98)
Implementa operaciones de salida de arrays de caracteres.
(clase)
(en desuso en C++98)
Implementa operaciones de entrada/salida de arrays de caracteres.
(clase)
Salida sincronizada
Definido en el archivo de encabezado <syncstream>
Envoltorio de un dispositivo de salida sincronizado.
(plantilla de clase)
Envoltorio de flujo de salida sincronizado.
(plantilla de clase)

Definiciones de tipo

Se proporcionan las siguientes definiciones de tipo para tipos de cáracter comunes:

typedef basic_ios<char>                ios;
typedef basic_ios<wchar_t>            wios;

typedef basic_streambuf<char>     streambuf;
typedef basic_streambuf<wchar_t> wstreambuf;
typedef basic_filebuf<char>         filebuf;
typedef basic_filebuf<wchar_t>     wfilebuf;
typedef basic_stringbuf<char>     stringbuf;
typedef basic_stringbuf<wchar_t> wstringbuf;
typedef basic_syncbuf<char>         syncbuf; // C++20
typedef basic_syncbuf<wchar_t>     wsyncbuf; // C++20
typedef basic_spanbuf<char>         spanbuf; // C++23
typedef basic_spanbuf<wchar_t>     wspanbuf; // C++23

typedef basic_istream<char>         istream;
typedef basic_istream<wchar_t>     wistream;
typedef basic_ostream<char>         ostream;
typedef basic_ostream<wchar_t>     wostream;
typedef basic_iostream<char>       iostream;
typedef basic_iostream<wchar_t>   wiostream;

typedef basic_ifstream<char>       ifstream;
typedef basic_ifstream<wchar_t>   wifstream;
typedef basic_ofstream<char>       ofstream;
typedef basic_ofstream<wchar_t>   wofstream;
typedef basic_fstream<char>         fstream;
typedef basic_fstream<wchar_t>     wfstream;

typedef basic_istringstream<char>     istringstream;
typedef basic_istringstream<wchar_t> wistringstream;
typedef basic_ostringstream<char>     ostringstream;
typedef basic_ostringstream<wchar_t> wostringstream;
typedef basic_stringstream<char>       stringstream;
typedef basic_stringstream<wchar_t>   wstringstream;

typedef basic_osyncstream<char>     osyncstream; // C++20
typedef basic_osyncstream<wchar_t> wosyncstream; // C++20

typedef basic_ispanstream<char>     ispanstream; // C++23
typedef basic_ispanstream<wchar_t> wispanstream; // C++23
typedef basic_ospanstream<char>     ospanstream; // C++23
typedef basic_ospanstream<wchar_t> wospanstream; // C++23
typedef basic_spanstream<char>       spanstream; // C++23
typedef basic_spanstream<wchar_t>   wspanstream; // C++23

Objetos de flujo estándar predefinidos

Definido en el archivo de encabezado <iostream>
Lee del flujo de entrada estándar de C stdin.
(objeto global)
Escribe al flujo de salida estándar de C stdout.
(objeto global)
Escribe al flujo de error estándar de C stderr, sin búfer.
(objeto global)
Escribe al flujo de error estándar de C stderr.
(objeto global)

Manipuladores de E/S

La biblioteca de E/S basada en flujos utiliza manipuladores de E/S (p. ej., std::boolalpha, std::hex, etc.) para controlar cómo se comportan los flujos.

Tipos

Se definen los siguientes tipos auxiliares:

Definido en el archivo de encabezado <ios>
Representa la posición relativa en el archivo o flujo (desplazamiento desde fpos, suficiente para representar cualquier tamaño de archivo.
(typedef)
Representa el número de caracteres transferido en una operación de E/S o el tamaño de un búfer de E/S.
(typedef)
Representa una posición absoluta en un flujo o un archivo.
(plantilla de clase)

Se proporcionan las siguientes definiciones de tipo para {{c|std::fpos<std::mbstate_t>}:

Definido en el archivo de encabezado <iosfwd>
Tipo Definición
streampos std::fpos<std::char_traits<char>::state_type>
wstreampos std::fpos<std::char_traits<wchar_t>::state_type>
u8streampos (C++20) std::fpos<std::char_traits<char8_t>::state_type>
u16streampos (C++11) std::fpos<std::char_traits<char16_t>::state_type>
u32streampos (C++11) std::fpos<std::char_traits<char32_t>::state_type>

Interfaz de categoría de error

Definido en el archivo de encabezado <ios>
(C++11)
los códigos IO secuencia de error
Original:
the IO stream error codes
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(enum)
identifica la categoría de error iostream
Original:
identifies the iostream error category
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(función)

E/S estilo C

C++ también incluye las funciones de entrada/salida definidas por C, tales como std::fopen, std::getc, etc.