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++20typedef basic_syncbuf<wchar_t> wsyncbuf;// C++20typedef basic_spanbuf<char> spanbuf;// C++23typedef 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++20typedef basic_osyncstream<wchar_t> wosyncstream;// C++20 typedef basic_ispanstream<char> ispanstream;// C++23typedef basic_ispanstream<wchar_t> wispanstream;// C++23typedef basic_ospanstream<char> ospanstream;// C++23typedef basic_ospanstream<wchar_t> wospanstream;// C++23typedef basic_spanstream<char> spanstream;// C++23typedef 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.