BIBLIOTECA DE CLASES ANSI/ISO C++

Documentos relacionados
PROGRAMACIÓN ORIENTADA A OBJETOS

1. Gestión de E/S. 2. Clases básicas. 3. E/S estándar. 4. Manejo de ficheros. Entrada/Salida en C++

#include <fstream.h> ifstream descriptor ( nombre.extensión ); ofstream descriptor ( nombre.extensión );

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

PROGRAMACIÓN ORIENTADA A OBJETOS CON C++

Uso de archivos en C++

Tema 3: Ficheros en C++

Entrada y salida de datos en C y C++

Estructura de Datos: Archivos

Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.

Elementos de un programa en C

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Informática Ingeniería en Electrónica y Automática Industrial

Contenidos. Archivos en C++ Archivos en C++ Introducción

Tema 13: Apuntadores en C

Prof. Dr. Paul Bustamante

Capítulo. Flujos y archivos en C++ Contenido

Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.

CURSO DE LENGUAJE C. 4.1 Conceptos básicos de funciones 4.2 Funciones que regresan valores no enteros 4.3 Variables externas 4.4 Reglas de alcance

Entrada y Salida en C++

CONTENIDO DE LA LECCIÓN 6 FLUJO DE SALIDA ESTANDAR EN C++

ALMACENAMIENTO PERSISTENTE DE DATOS

Práctica 3. Paso de parámetros entre subrutinas. 3. Consideraciones sobre el paso de parámetros

Principios de Computadoras II

Definición de Memoria

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez

Estructuras de Datos Declaraciones Tipos de Datos

Agradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

The Atomik Microkernel API Reference, version 0.1 february 2014 (Spanish)

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

Guía rápida para gestionar el puerto paralelo del PC

ESTRUCTURA DE COMPUTADORES I (Capítulo 16:El Teclado) 1/5 16-EL TECLADO

Tema: Sobrecarga de Operadores.

Examen escrito de Programación 1. Jueves 5 de febrero de Problema 1 o (3.5 puntos)

FUNDAMENTOS DE INFORMÁTICA

TIPO DE DATO ABSTRACTO (TDA)

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Introducción a los Computadores

TIPOS DE DATOS BASICOS EN LENGUAJE C

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

Entrada y Salida vía Archivos

Programación. Test Autoevaluación Tema 3

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Relación de prácticas de la asignatura METODOLOGÍA DE LA PROGRAMACIÓN Segundo Cuatrimestre Curso º Grado en Informática

PROGRAMACION ORIENTADA A OBJETOS EN C++

Escuela Politécnica Superior de Elche

Tema 6. Gestión dinámica de memoria

Introducción a variables de tipo Puntero (Apuntadores) Contenidos. 1. Introducción a las variables puntero 2. Repaso:

Programación En Lenguaje C

Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

4. Operadores Operador asignación

Programación I Unidad III. Tema: Tipos, estructuras y uniones

DOCUMENTACIÓN PARA EL TRABAJO CON LA PLATAFORMA GUADALBOT

Definición y Conversión de datos. Agustín J. González ELO-329

2.2 Nombres, Ligado y Ámbito

Práctica 4: Herencia. Objetivos:

Temario detallado. Conceptos generales de lenguajes y compiladores. Proceso de compilación de un programa en C++ bajo Code::Blocks

7. Manejo de Archivos en C.

Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.

Constantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

1

Tema 2. El lenguaje JAVA

Programación 2. Grado en Estadística Aplicada. Curso Generación de números pseudoaleatorios. Manejo de ficheros de texto.

Tema 10: Tipos de datos definidos por el usuario

Examen escrito de Programación 1

9 GESTIÓN BÁSICA DE FICHEROS. Contenido

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Apuntadores en C y C++

Ficheros y streams. Desde el punto de vista de Java, cada fichero no es más que una secuencia o flujo de bytes [stream].

Instituto Tecnológico de Celaya

GUIA No 5. CREACIÓN DE SubVI s

Necesidad de la herencia pertenencia variedad is a has a herencia variedad definir una clase modificando una o más clases añadir nuevos miembros

Fundamentos de programación

Una base de datos de Access puede estar conformada por varios objetos, los más comunes son los siguientes:

Conceptos a tratar. Fundamentos de la Programación Orientada a Objetos Ampliación sobre clases y objetos

Programación orientada a objetos. Resumen de Temas Unidad 4: Sobrecarga

Lenguajes de programación

Por ejemplo, para declarar un arreglo de enteros llamado a con diez elementos se hace de la siguiente forma:

Apuntadores (Punteros)

Introducción al tipo de dato ARRAY

Programación estructurada (Introducción a lenguaje C)

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Lección 2 Introducción al lenguaje C

Introducción al lenguaje C

LENGUAJE. Tema 2 Elementos de un programa

GESTION DE UN LCD USANDO CCS COMPILER (PICC)

1 Estructura básica de un programa C++

Parte I: Elementos del lenguaje Ada

ANEXO XVII DE LA RESOLUCION N

PHP: Lenguaje de programación

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Tema 3. Tipos de datos simples

Clases en C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Algoritmos y Programación II. Enero de 2005

Transcripción:

APÉNDICE G BIBLIOTECA DE CLASES ANSI/ISO C++ CONTENIDO G.1. G.2. G.3. G.4. G.5. G.6. G.7. G.8. G.9. Clase filebuf. Clase fstream. Clase fstreambase. Clase ifstream. Clase ios. Clase iostream. Clase iostream_withassign. Clase istream. Clase istream_withassign. G.10. Clase istrstream. G.11. Clase ofstream. G.12. Clase ostream. G.13. Clase ostream_withassign. G.14. Clase ostrstream. G.15. Clase streambuf. G.16. Clase strstreambase. G.17. Clase strstreambuf. G.18. Clase strstream. La biblioteca de clases de C++ consta de diferentes clases. Esta referencia presenta en orden alfabético las funciones miembro más frecuentemente utilizadas de la jerarquía de clases. Como ya conoce el lector, a las clases se accede a través de la inclusión de archivos. La Tabla G.1 lista los archivos de cabecera relativos a clases, con indicación de las clases asociadas a cada uno de ellos. Deberá incluir el correspondiente archivo de cabecera cuando desee manejar una clase incluida en el mismo. TABLA G.1. Archivo Archivos de cabecera estándar Clases incluidas constrea.h Conbuf, constream. iostream.h ios, iostream, iostream_withssing, istream, istream_witassing, ostream, ostream_withassing, streambuf. fstream.h filebuf, fstream, fstreambase, ifstream, ofstream. srstrea.h istrstream, ostrstream, strstream, strstreambase, strstreambuf Constructores/Destructores: Funciones miembro attach filebuf* attach(int da); #include <fstream.h> filebuf ~filebuf attach close fd is_ overflow seekoff sync underflow filebuf::attach G.1. CLASE FILEBUF Conecta el objeto filebuf a una descripción de archivo abierto. Clase especializada para E/S por archivos de disco a través de buffer. class filebuf:public streambuf close filebuf* close(); filebuf::close

666 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS Limpia y cierra el archivo. Si ocurre un error, la función devuelve NULL; si no hay error, la función devuelve la dirección del objeto filebuf. fd filedesc fd() const; filebuf::fd Atributo Significado 0 Archivo normal, acceso abierto. 1 Archivo de sólo lectura. 2 Archivo oculto. 4 Archivo del sistema. 8 Establecer bit de archivar. Devuelve el descriptor del archivo asociado con el objeto filebuf; filedesc es un tipo definido por el usuario (typedef) equivalente a int. Si el objeto no está conectado a un archivo la función devuelve EOF. overflow virtual int overflow(int c = EOF); filebuf::overflow filebuf filebuf(); filebuf(int da); filebuf(int da, char *pr, int n); filebuf::filebuf Construye un objeto filebuf: (1) el objeto no se conecta a un archivo, (2) el objeto se conecta a un archivo abierto, (3) el objeto se conecta a un archivo abierto y lo inicializa para utilizar una zona de reserva especificada. Limpia un buffer hacia su destino. Cada clase derivada debe definir las acciones que se tomen. seekoff filebuf::seekoff virtual streampos seekoff(streamoff, ios::seek_dir, int) Mueve el puntero (apuntador) relativo del archivo a la posición actual. is_ int is_rtl_(); filebuf::is_ Devuelve un valor distinto de cero si el archivo está abierto; en caso contrario, 0. virtual streambuf* (char *, int); Especifica un buffer para este filebuf. filebuf:: filebuf:: sync filebuf::sync filebuf* (const char* nomarch, int modo, int prot = filebuf::prot); Abre el archivo especificado y se conecta a él. Modo determina cómo se abre el archivo y debe ser uno (o más) de estos valores: ios::app ios::ate ios::binary ios::in ios::nocreate ios::noreplace ios::out ios::trunc prot especifica el atributo del archivo virtual int sync(); Establece consistencia entre estructuras de datos internas y la representación externa de flujo. underflow virtual int underflow(); filebuf::underflow Hace disponible la entrada. Ésta se llama cuando no existe ningún dato más en el buffer de entrada. Cada clase derivada debe definir las acciones a tomar.

BIBLIOTECA DE CLASES ANSI/ISO C++ 667 G.2. CLASE FSTREAM La clase fstream es una clase derivada de iostream, especializada para entrada y salida combinada de archivos en disco. class fstream:public iostream Constructores/Destructores: Funciones miembro: #include <fstream.h> fstream (construye un objeto fstream) ~fstream (destruye un objeto fstream) class fstreambase::public ios Archivo de cabecera Constructores/Destructores Funciones miembro attach <fstream.h> fstreambase(); ~fstreambase(); attach close fstreambase::attach fstream:: void attach(int); void (const char *, int, int = filebuf::prot); Conecta este flujo al descriptor de archivos abierto. Abre un archivo para un objeto fstream. close fstreambase::close fstream fstream::fstream void close(); fstream(); fstream(const char *, int, int = filebuf::prot); fstream(int); fstream(int, char *, int); La función constructor tiene cuatro formatos: (1) construye un fstream que no se conecta a un archivo, (2) construye un fstream, abre un archivo y lo conecta, (3) construye un fstream y lo conecta a un descriptor de archivo abierto, (4) construye un fstream conectado a un archivo abierto y utiliza un archivo especificado. Cierra el objeto filebuf asociado y el archivo. fstreambase:: void (const char *, int, int = filebuf::prot); Abre un archivo para un streambase. filebuf*(); G.3. fstream:: Devuelve un puntero al objeto filebuf, que se asocia con este flujo. CLASE FSTREAMBASE Esta clase de flujo, derivada de ios, proporciona operaciones comunes a flujos de archivo. Sirve como base para fstream, ifstream y ofstream. filebuf* (); Devuelve el filebuf utilizado. void (char*, int); Utiliza un buffer especificado. fstreambase:: fstreambase::

668 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS fstreambase fstreambase::fstreambase ifstream:: fstreambase(); fstreambase(const char*, int, int = filebuf::prot); fstreambase(int); fstreambase(int, char*, int); (1) construye un objeto fstreambase que no se conecta a un archivo, (2) construye un objeto streambase, abre un archivo y lo conecta, (3) construye un objeto fstreambase y lo conecta a un descriptor de archivo abierto, (4) construye un fstreambase conectado a un archivo abierto y utiliza un buffer especificado. G.4. CLASE IFSTREAM La clase ifstream es una clase derivada de fstreambase e istream, proporciona operaciones de entrada para archivos en disco. Sus constructores crean automáticamente y conectan a un objeto filebuf. class ifstream:public istream #include <fstream.h> Constructores/Destructores: ifstream (construye un objeto ifstream) ~ifstream (destruye un objeto ifstream) Funciones miembro: ifstream ifstream::ifstream ifstream(); ifstream(const char*, int = ios::in, int = filebuf::prot); ifstream(int fd, char*, int); Construye un objeto ifstream: (1) construye un ifstream que no se conecta a un archivo, (2) construye un ifstream, abre un archivo de entrada en modo protegido y lo conecta a él, (3) construye un ifstream y lo conecta a un descriptor de archivo abierto, (4) construye un ifstream conectado a un archivo abierto y utiliza un buffer especificado. filebuf* (); Devuelve un puntero al objeto de buffer que está asociado con este flujo. G.5. CLASE IOS La clase ios es la clase base de todas las clases de flujos de entrada/salida. Proporciona operaciones de entrada y salida. Sus clases derivadas (istream, ostream e iostream) se especializan en operaciones con formatos de E/S. La clase ios es una clase base de istream, ostream, fstreambase y strstreambase. Aunque ios no es técnicamente una clase base abstracta, se podrán utilizar muchas de las funciones miembro y miembros dato heredados. class ios #include <iostream.h> Constructores/Destructores: ios() (constructor para usar en clases derivadas) ~ios (destructor virtual) Funciones miembro: bad bitalloc clear eof fail fill flags good init precision rdstate setf setstate sync_with_stdi Atie unsetf width xalloc bad int bad(); ios::bad Devuelve true (verdadero) si ha ocurrido un error fatal de E/S en el flujo asociado; en caso contrario, se devuelve 0. ifstream:: void (const char*, int, int = filebuf::prot); Abre un archivo de disco y lo conecta al objeto filebuf del flujo. bitalloc static long bitalloc(); ios::bitalloc

BIBLIOTECA DE CLASES ANSI/ISO C++ 669 Proporciona una máscara para un bit no utilizado anteriormente en el miembro dato. El valor de retorno se puede utilizar para establecer, borrar y comprobar el indicador. clear void clear(int flags = 0); ios::clear Borra los indicadores de estado asociados con un flujo. Si flags es 0 (valor por defecto), se borran todos los indicadores de error (se ponen a 0). En caso contrario, los indicadores de estado se ponen a cualquier valor especificado en flags. El primer formato devuelve los indicadores de formato reales. El segundo formato fija los indicadores de formato asociados con un flujo como el especificado por f. good int good(); ios::good Devuelve un valor distinto de cero (verdadero) si ningún error de E/S se ha producido en el flujo asociado; en caso contrario, se devuelve 0. eof int eof(); ios::eof Devuelve true (verdadero) cuando se encuentra el fin del archivo de entrada asociado; en caso contrario, se devuelve 0. init void init(streambuf *); Proporciona la inicialización real. precision ios::init ios::precision fail int fail(); ios::fail Devuelve true (verdadero, distinto de cero) si se ha producido un error en la operación; en caso contrario, se devuelve 0. int precision (); int precision(int p); El primer formato devuelve la precisión real de coma flotante (sin dígitos se visualizan después del punto decimal). Con el segundo formato se puede establecer la precisión (el número de dígitos) al valor especificado en p. fill ios::fill ios:: char fill(); char fill(char car); Cuando un campo necesita rellenarse, se rellena, por defecto, con blancos. Sin embargo, se puede especificar el carácter de rellenado utilizando la función fill()y especificando el nuevo carácter de rellenado en car. El primer formato devuelve el carácter de relleno actual. streambuf* (); Devuelve un puntero al objeto streambuf, que está asociado con este flujo. La función es útil cuando se necesita llamar a funciones miembro streambuf. rdstate ios::rdstste flags long flags(); long flags(long f); ios::flags int rdstate(); Devuelve el estado real del flujo asociado, especificado por las siguientes máscaras o indicadores:

670 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS Nombre ios::goodbit ios::eoffbit ios::failbit ios::badbit setf Significado 0, no se produce ningún error. 1, se produce un error. 1, cuando se encuentra el final del archivo. 0, caso contrario. 1, se ha producido un error no fatal de E/S. 0, caso contrario. 1, se ha producido un error fatal de E/S. O, caso contrario. ios::setf La primera función enlaza (une) este flujo al ostream especificado y devuelve el valor del anterior puntero enlazado (NULL, si este flujo no estaba previamente enlazado). La segunda función devuelve el valor del anterior puntero enlazado (NULL si este flujo no estaba previamente enlazado). unsetf long unsetf(long flags); ios::unsetf Borra los bits correspondientes a los marcados en el parámetro flags; devuelve la configuración anterior. long setf(long flags); long setf(long flags1, long flags2); Establece los indicadores correspondientes a los señalados en el parámetro flags; devuelve los parámetros anteriores. El segundo formato afecta sólo a los indicadores (flags) que se establecen en flags2. Los indicadores correspondientes se ponen primero a cero y a continuación se ponen a 1, de acuerdo a los indicadores especificados por indicadores1. Ambos formatos de setf() devuelven la configuración anterior de los indicadores de formato asociados con el flujo. width int width(); int width(int a); ios::width La primera función obtiene la anchura del campo actual. La segunda función establece la anchura del campo y se devuelve la anchura del campo anterior. xalloc ios::xalloc setstate protected:void saetstate(int); Pone a uno todos los bits de estado. sync_with_stdio static void sync_with_stdio(); Mezcla archivos stdio e iostream.. ios::setstate ios:: sync_with_stdio static int xalloc(); Devuelve un índice de array de palabras anteriormente no utilizadas, que se pueden utilizar como indicadores de formato definidos por el usuario. G.6. CLASE IOSTREAM Esta clase, derivada de istream y ostream, es simplemente una mezcla de sus clases base, permitiendo entrada y salida sobre un flujo. Se pueden utilizar objetos iostream para E/S secuencial en disco si se construye primero un objeto filebuf apropiado. class iostream:public istream, public ostream tie ostream* tie(); ostream* tie(ostream*); ios::tie Constructores/Destructores: #include <iostream.h> iostream (construye un objeto iostream que se conecta a un streambuf existente) ~iostream (destruye un objeto iostream)

BIBLIOTECA DE CLASES ANSI/ISO C++ 671 iostream iostream(streambuf*); virtual ~iostream(); iostream::iostream La primera función construye un objeto de tipo iostream. La segunda función es un destructor virtual para la clase iostream. G.7. CLASE IOSTREAM_WITHASSIGN Esta clase es una subclase de iostream con un operador de asignación añadido. Constructores/Destructores: iostream_withassign iostream_withassign(); ~iostream_withassign(); G.8. Construyen y destruyen un objeto. CLASE ISTREAM #include <iostream.h> iostream_withassign ~iostream_withassign Devuelve el número de caracteres extraído por la última función de entrada sin formato. get int get(); istream::get istream& get(signed char*, int num, char separ = \n ); istream& get(unsigned char*, int num, char separ = \n ); istream& get(signed char&); istream& get(unsigned char&); istream& get(strambuf&, char = \n ); get() lee caracteres de un flujo de entrada. En particular, get sin parámetros lee un único carácter del flujo asociado y devuelve ese valor. El formato de get, que toma tres parámetros, lee caracteres del flujo hasta que o bien num caracteres se han leído, o el carácter especificado por separ se ha encontrado, o se alcanza el final del archivo. Los caracteres se almacenan en el array seguido por un carácter nulo. El formato con un solo parámetro extrae un único carácter de flujo y lo almacena en el especificado por el argumento de referencia. Por último, el formato con dos parámetros lee caracteres del flujo de entrada en el objetivo streambuf (o derivado). Los caracteres se leen hasta que se encuentra el separador especificado. Devuelve una referencia al flujo. La clase istream proporciona la aptitud básica para entrada secuencial y acceso aleatorio. getline istream::getline class istream:virtual public ios Constructor/Destructor: #include <iostream.h> istream (construye un objeto istream conectado a un objeto existente de una clase derivada de streambuf). istream (destruye un objeto istream) Funciones miembro: gcount get getline ignore peek putback read seekg tellg istream& getline(signed char *bufer, int, char = \n ); istream& getline(unsigned char *bufer, int, char = \n ); Actúa igual que get, con la diferencia de que también se extrae el separador, que no se copia en buffer. ignore istream& ignore(int num = 1, int separ = EOF); istream::ignore gcount int gcount(); istream::gcount Lee y descarta caracteres del flujo de entrada, hasta que o bien se han ignorado num caracteres (1, por defecto) o hasta que el carácter especificado por separ (EOF, por defecto) se encuentra.

672 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS istream 1. istream(streambuf *); 2. virtual ~istream(); istream:istream istream::~istream (1) construye un objeto de una clase derivada de streambuf. (2) destructor virtual de la clase istream. (1) mueve el puntero del archivo a una posición absoluta (devuelta por tellg). (2) mueve el puntero del archivo a una posición relativa a la posición del cursor. El origen es de tipo ios::seek_dir y es una enumeración que toma estos valores: enum seek_dir {beg, cur, end}; ios:: beg Búsqueda desde el principio. ios::cur Búsqueda desde la posición actual. ios::end Búsqueda desde el final. tellg istream::tellg peek int peek(); istream::peek streampos tellg(); Devuelve la posición actual del flujo. Devuelve el siguiente carácter del flujo, sin extraerlo del flujo. Devuelve EOF, si se encuentra el final del archivo. G.9. CLASE ISTREAM_WITHASSIGN putback istream& putback (char car); istream::putback Devuelve el carácter car al flujo de entrada asociado; car debe ser el último carácter leído de ese flujo. read 1. istream & read(signed char* buf, int num); 2. istream & read(unsigned char* buf, int num); istream::read Lee num bytes del flujo de entrada asociado y los pone en el buffer apuntado por buf. Si se alcanza el final del archivo antes de que se hayan leído num caracteres, read() se detiene y el buffer contiene tantos caracteres como estuvieran disponibles. Si se produce un error, utilice gcount(). La función read es útil para entradas de flujo binarias. Esta clase es una subclase de istream_withassign con la adición de un operador de asignación. El objeto predefinido cin es un objeto de esta clase y se puede reasignar en tiempo de ejecución a un objeto diferente istream. class istream_withassign:public istream #include <iostream.h> Constructor/Destructor: istream_withassign(); (crea un objeto) ~istream_withassign(); (destruye un objeto) Funciones miembro: Ninguna (aunque el operador = está sobrecargado) G.10. CLASE ISTRSTREAM Soporta flujos de entrada que tienen arrays de caracteres como fuente. class istrstream:public istream #include <strstream.h> Constructor/Destructor: istrstream(const char *); ~istrstream(const char *, int n); sekg 1. istream& seekg(streampos); 2. istream& seekg(streampos, seek_dir); istream::seekg G.11. CLASE OFSTREAM Esta clase es una clase derivada de ostream, que proporciona operaciones de entrada en un filebuf. class ofstream:public ostream

BIBLIOTECA DE CLASES ANSI/ISO C++ 673 #include <fstream.h> Constructor/Destructor: ofstream (construye un objeto ofstream) ~ofstream (destruye un objeto ofstream) Funciones miembro: ofstream:: void (const char *, int = ios::out, int = filebuf::prot); Abre un archivo para un ofstream. filebuf* (); Devuelve el filebuf utilizado. ofstream:: put ostream& put(char) ostream::put La función put inserta un carácter en el flujo de salida. Devuelve una referencia al flujo. seekp 1. ostream& seekp(streampos); 2. ostream& seekp(streamoff, seek_dir); ostream::seekp (1) se mueve a una posición absoluta. (2) se mueve a una posición relativa a la posición actual, a continuación de la definición. La dirección de búsqueda se especifica por el tipo enumerado enum seek_dir(beg, cur, end); G.12. CLASE OSTREAM Proporciona características para salida secuencial y acceso aleatorio. Valor ios::beg ios::cur ios::end Significado Búsqueda desde el principio del flujo. Búsqueda desde la posición actual en el flujo. Búsqueda desde el final del flujo. class ostream:virtual public ios Constructor/Destructor: #include <iostream.h> ostream (construye un objeto que se conecta a un objeto streambuf existente) ~ostream (destruye un objeto ostream) Funciones miembro: flush put seekp tellp write tellp streampos tellp(); Obtiene el valor de la posición actual del flujo. ostream::tellp flush ostream & flush(); Limpia el buffer asociado con el flujo. ostream::flush write ostream& write(const signed char* buf, int n); ostream& write(const unsigned char*buf, int n); ostream::write Inserta un número especificado (n) de bytes, desde un buffer en el flujo de salida asociado (buf). ostream 1. ostream(streambuf *); 2. virtual ~ostream(); ostream::ostream (1) construye un objeto de tipo ostream. (2) destruye un objeto ostream. G.13. CLASE OSTREAM_WITHASSIGN Esta clase es una subclase de ostream que permite asignación de objetos. Los objetos predefinidos cout, cerr y clog son objetos de esta clase, y

674 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS por consiguiente, se pueden reasignar en tiempo de ejecución a un objeto ostream diferente. class ostream_withassign:public ostream #include <iostream.h> Constructor/Destructor: ostream_withassign (construye un objeto) ~ostream_withassign (destruye un objeto) Funciones miembro: Ninguno (aunque el operador = está sobrecargado) pcount int pcount(); ostrstream::pcount Devuelve el número de bytes actualmente almacenados en el buffer. Esta información es útil, especialmente cuando se almacenan datos binarios en el objeto. str ostrstream::str ostream_withassign ostream_withassign::ostream_withassign char *str(); ostream_withassign(); ~ostream::withassign(); Constructor y destructor por defecto. Devuelve y congela el buffer. En realidad, «congela» un array de entrada asignado dinámicamente y devuelve un puntero al mismo. Una vez que un array dinámico se congela, no se puede utilizar de nuevo para salida. G.14. CLASE OSTRSTREAM Esta clase soporta flujos de salida que tienen arrays de caracteres como destino. class ostrstream:public ostream #include <strstrea.h> Constructor/Destructor: ostrstream (construye un objeto ostrstream) ostrstream (destruye un objeto ostrstream) Funciones miembro: pcount str ostrstream ostrstream::ostrstream 1. ostrstream(); 2. ostrstream(char *p, int long, int modo = ios::out); (1) construye un objeto dinámico ostrstream. (2) construye un objeto ostrstream con un buffer especificado de n-bytes, modo puede ser uno de los siguientes enumeradores: ios::out ios::ate ios::app Por defecto. El parámetro p se supone un array terminado en nulo. Igual que ate. G.15. CLASE STREAMBUF Es una clase de manejo de buffers. Esta clase es abstracta, pero contiene las siguientes clases derivadas: filebuf, strstreambuf y conbuf. La clase streambuf proporciona un interfaz a dispositivos físicos. class streambuf #include <iostream.h> Constructor/Destructor: streambuf (constructores para uso en clases derivadas) ~streambuf (destructor virtual) Funciones miembro: allocate base blen eback ebuf egptr epptr gbump gptr in_avail out_waiting pbase pbump pptr sbumpc seekoff seekpos setb setg setp sgetc sgetn snextc sputback sputc sputn stossc unbuffered

BIBLIOTECA DE CLASES ANSI/ISO C++ 675 allocate streambuf::allocate epptr streambuf::epptr protected:int allocate(); Establece un área de buffer. protected: char *epptr(); Devuelve un puntero al byte después del último byte del área put. base protected:char *base(); streambuf::base Devuelve un puntero al primer byte del área de reserva (espacio entre los punteros devuelto por base y ebuf). gbump streambuf::gbump protected: void gbump(int); Avanza el puntero get (incremento en número de bytes). gptr streambuf::gptr blen streambuf::blend protected:char*gptr(); Devuelve la siguiente posición en el área de get. protected:int blen(); Devuelve el tamaño en bytes del área de reserva. in_avail int in_avail(); streambuf::in_avail eback protected:char *eback(); Devuelve el límite inferior del área get. ebuf treambuf::eback streambuf::ebuf Devuelve el número de caracteres que permanecen en el buffer de entrada. out_waiting streambuf::out_waiting int out_waiting(); Devuelve el número de caracteres que permanecen en el buffer de salida. protected:char* ebuf(); Devuelve un puntero al byte después del último byte del área de reserva. pbase protected:char *pbase(); Devuelve un puntero al comienzo del área put. streambuf pbase egptr streambuf::egptr pbump streambuf::pbump protected::char* egptr(); Devuelve un puntero al byte después del último byte del área get. protected:void pbump(int); Avanza el puntero put.

676 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS pptr streambuf::pptr setg streambuf::setg protected:char *pptr(); protected:void setg (char *, char *, char); Devuelve un puntero al primer byte del área put. Establece los valores para los punteros del área get. sbumpc streambuf::sbumpc setp streambuf::setp int sbumpc(); protected:void setp (char *, char *); Devuelve el carácter actual y a continuación avanza el puntero get. Inicializa los punteros get. seekoff streambuf::seekoff sgetc streambuf::sgetc virtual streampos seekoff(streamoff, ios::seek_dir, int modo = (ios::in ios::out)); Mueve el puntero get o put. modo determina el tipo de operación (entrada/salida). int sgetc(); Devuelve el carácter en el puntero get. La función sgetc no mueve el puntero get. Devuelve EOF si no hay carácter disponible. seekpos streambuf::seekpos virtual streampos seekpos (streampos, int = (ios::in ios::out)); Mueve el puntero get o put a una posición absoluta. sgetn streambuf::sgetn int sgetn(char *, int n); Obtiene los siguientes n caracteres del buffer de entrada. setb streambuf::setb snextc streambuf::snextc protected:void setb(char *, char *, int suprimir = 0); Establece el área de buffer. suprimir controla la supresión automática. int snextc(); Primero comprueba el puntero get, después devuelve EOF si ya está al final del área get. virtual streambuf * (signed char *, int); streambuf* (unsigned char *, int); streambuf:: sputback int sputback(char); streambuf::sputback Conecta el área de reserva especificada al objeto streambuf. Las clases derivadas pueden o no utilizar esta área. Devuelve un carácter a la entrada. Retrocede el puntero get una posición.

sputc int sputc(int); Almacena un carácter en el buffer de salida. streambuf::sputc class strstreambase Constructor/Destructor: Funciones miembro: BIBLIOTECA DE CLASES ANSI/ISO C++ 677 #include <strstrea.h> strstreambase (construye un objeto) ~strstreambase (destruye un objeto) sputn int sputn(const char *, int n); streambuf::sputn Copia n caracteres en el buffer de salida. Devuelve el número de caracteres almacenados (n, aunque pueden ser menos si ocurre un error). stossc void stossc(); Avanza al siguiente carácter en el buffer de entrada. strambuf::stossc strstreambuf *(); strstreambase:: Devuelve un puntero al strstreambuf asociado con ese objeto. strstreambase strstreambase::strstreambase 1. protected:strstreambase(); 2. protected:strstreambase(char *, int, char *inicio); (1) crea un objeto vacío. (2) crea un objeto y le asocia un buffer especificado y una posición inicial. streambuf 1. protected:streambuf(); 2. protected:streambuf(char *, int); 3. protected:virtual ~streambuf(); streambuf::streambuf (1) crea un objeto de buffer vacío. (2) utiliza un array y tamaño dados como buffer, (3) el destructor limpia el buffer si el flujo se utiliza para salida. unbuffered 1. protected:void unbuffered(int); 2. protected: int unbuffered(); streambuf::unbuffered (1) establece el estado a través de buffer. (2) devuelve un valor distinto de cero si no se realiza a través de buffer. G.16. CLASE STRSTREAMBASE Esta clase es totalmente protegida. Es clase base de strstream, istrstream y ostrstream. G.17. CLASE STRSTREAMBUF La clase strstreambuf es una clase derivada de streambuf que gestiona un array de caracteres en memoria. class strstreambuf:public streambuf #include <strstrea.h> Constructor/Destructor: stratreambuf (construye un objeto) ~strstreambuf (destruye un objeto) Funciones miembro: doallocate freeze overflow seekoff str underflow doallocate virtual int doallocate(); Realiza asignación de bajo nivel a un buffer. strstreambuf::doallocate

678 PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS freeze void freeze(int n = 1); strstreambuf::freeze La función freeze proporciona un medio de prevenir la supresión automáticamente. Para un parámetro distinto de cero, por defecto, se impide la entrada de nuevos caracteres en el buffer; un parámetro nulo proporciona una congelación de la situación. (1) construye un strstreambuf dinámico, la memoria se asignará dinámicamente a medida que se necesita. (2) construye un buffer dinámico. (3) construye un strstreambuf asignando inicialmente un buffer de al menos n bytes. (4) y (5) construye un strstreambuf estático con un buffer especificado. underflow strstreambase::underflow overflow virtual int overflow(int = EOF); Limpia un buffer. strstreambuf::overflow virtual int underflow(); Hace una entrada disponible. Se llama cuando se solicita un carácter y el streambuf está vacío. seekoff strstreambuf::seekoff virtual streampos seekoff(streamoff, ios::seek_dir, int); Mueve el puntero relativo a la posición actual. strstreambuf:: virtual streambuf* (char *, int); G.18. CLASE STRSTREAM Esta clase proporciona entrada y salida simultánea en un stratreambuf. Class strstream:public iostream, public strstreambase #include <strstrea.h> Constructor/Destructor: strstream (construye un objeto) ~strstream (destruye un objeto) Funciones miembro: str Especifica el buffer que se ha de utilizar. str strstream::str str strstreambuf::str char *str(); char *str(); Devuelve un puntero al buffer y provoca una llamada a la función freeze. Devuelve y congela el buffer. El usuario debe desasignarlo si era dinámico. strstreambuf strstreambuf::strstreambuf strstream strstream::strstream 1. strstreambuf(); 2. strstreambuf(void *(*) (long), void (*) (void *)); 3. strstreambuf(int n); 4. strstreambuf(signed char *, int, signed char *end 0); 5. strstreambuf(unsigned char *, int, unsigned char *end 0); 1. strstream(); 2. strstream(char *, int n, int modo); (1) construye un objeto dinámico. (2) construye un objeto, asociándole un buffer estático de n bytes.