Biblioteca de entrada/salida
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.
Contenido |
[editar] 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:
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> | |
(C++23) |
Implementa un dispositivo de búfer de caracteres sin formato. (plantilla de clase) |
(C++23) |
Implementa operaciones de entrada de búfer de caracteres fijas. (plantilla de clase) |
(C++23) |
Implementa operaciones de salida de búfer de caracteres fijas. (plantilla de clase) |
(C++23) |
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> | |
(C++20) |
Envoltorio de un dispositivo de salida sincronizado. (plantilla de clase) |
(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
[editar] 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) |
[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.
[editar] 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> |
[editar] 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) |
(C++11) |
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) |
[editar] E/S estilo C
C++ también incluye las funciones de entrada/salida definidas por C, tales como std::fopen, std::getc, etc.