Biblioteca de entrada/salida - cppreference.com
De cppreference.com
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:
Inheritance diagram
Abstracción | |
Definido en el archivo de encabezado | |
| Maneja el formato de banderas y las excepciones de entrada/salida. (clase) [editar] | |
| Administra un búfer de flujo arbitrario. (plantilla de clase) [editar] | |
Definido en el archivo de encabezado | |
| Abstrae un dispositivo puro. (plantilla de clase) [editar] | |
Definido en el archivo de encabezado | |
| Envuelve un dispositivo abstracto dado (std::basic_streambuf) y proporciona una interfaz de salida de alto nivel. (plantilla de clase) [editar] | |
Definido en el archivo de encabezado | |
| Envuelve un dispositivo abstracto dado (std::basic_streambuf) y proporciona una interfaz de entrada de alto nivel. (plantilla de clase) [editar] | |
| Envuelve un dispositivo abstracto dado (std::basic_streambuf) y proporciona una interfaz de entrada/salida de alto nivel. (plantilla de clase) [editar] | |
Implementación de E/S de archivos | |
Definido en el archivo de encabezado | |
| Implementa un dispositivo de archivo puro. (plantilla de clase) [editar] | |
| Implementa operaciones de entrada de flujo de archivo de alto nivel. (plantilla de clase) [editar] | |
| Implementa operaciones de salida de flujo de archivo de alto nivel. (plantilla de clase) [editar] | |
| Implementa operaciones de entrada/salida de flujo de archivo de alto nivel. (plantilla de clase) [editar] | |
Implementación de E/S de cadenas | |
Definido en el archivo de encabezado | |
| Implementa un dispositivo de cadena puro. (plantilla de clase) [editar] | |
| Implementa operaciones de entrada de flujo de cadena de alto nivel. (plantilla de clase) [editar] | |
| Implementa operaciones de salida de flujo de cadena de alto nivel. (plantilla de clase) [editar] | |
| Implementa operaciones de entrada/salida de flujo de cadena de alto nivel. (plantilla de clase) [editar] | |
Implementaciones de E/S de arrays | |
Definido en el archivo de encabezado | |
(C++23) |
Implementa un dispositivo de búfer de caracteres sin formato. (plantilla de clase) [editar] |
(C++23) |
Implementa operaciones de entrada de búfer de caracteres fijas. (plantilla de clase) [editar] |
(C++23) |
Implementa operaciones de salida de búfer de caracteres fijas. (plantilla de clase) [editar] |
(C++23) |
Implementa operaciones de entrada/salida de búfer de caracteres fijas. (plantilla de clase) [editar] |
Definido en el archivo de encabezado | |
(en desuso en C++98) |
Implementa un dispositivo de array de caracteres puro. (clase) [editar] |
(en desuso en C++98) |
Implementa operaciones de entrada de arrays de caracteres. (clase) [editar] |
(en desuso en C++98) |
Implementa operaciones de salida de arrays de caracteres. (clase) [editar] |
(en desuso en C++98) |
Implementa operaciones de entrada/salida de arrays de caracteres. (clase) [editar] |
Salida sincronizada | |
Definido en el archivo de encabezado | |
(C++20) |
Envoltorio de un dispositivo de salida sincronizado. (plantilla de clase) [editar] |
(C++20) |
Envoltorio de flujo de salida sincronizado. (plantilla de clase) [editar] |
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 | |
| Lee del flujo de entrada estándar de C stdin. (objeto global) [editar] | |
| Escribe al flujo de salida estándar de C stdout. (objeto global) [editar] | |
| Escribe al flujo de error estándar de C stderr, sin búfer. (objeto global) [editar] | |
| Escribe al flujo de error estándar de C stderr. (objeto global) [editar] | |
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 | |
Representa la posición relativa en el archivo o flujo (desplazamiento desde fpos, suficiente para representar cualquier tamaño de archivo. (typedef) [editar] | |
| 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) [editar] | |
| Representa una posición absoluta en un flujo o un archivo. (plantilla de clase) [editar] | |
Se proporcionan las siguientes definiciones de tipo para {{c|std::fpos<std::mbstate_t>}:
Definido en el archivo de encabezado | |
| 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 | |
los códigos IO secuencia de error Original: the IO stream error codes The text has been machine-translated via Google Translate. (enum) [editar] | |
identifica la categoría de error iostream Original: identifies the iostream error category The text has been machine-translated via Google Translate. (función) [editar] | |
E/S estilo C
C++ también incluye las funciones de entrada/salida definidas por C, tales como std::fopen, std::getc, etc.