G. Biblioteca de clases ANSI/ISO C++

Anuncio
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.
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
G.10.
G.11.
G.12.
G.13.
G.14.
G.15.
G.16.
G.17.
G.18.
Clase istrstream.
Clase ofstream.
Clase ostream.
Clase ostream_withassign.
Clase ostrstream.
Clase streambuf.
Clase strstreambase.
Clase strstreambuf.
Clase strstream.
Archivo de cabecera:
Constructores/Destructores:
Funciones miembro
Archivos de cabecera estándar
Clases incluidas
constrea.h Conbuf, constream.
iostream.h ios, iostream, iostream_withssing, istream,
#include <fstream.h>
filebuf
~filebuf
attach
close
fd
is_open
open
overflow
seekoff
setbuf
sync
underflow
istream_witassing, ostream, ostream_withassing, streambuf.
fstream.h
srstrea.h
G.1.
filebuf, fstream, fstreambase, ifstream, ofstream.
istrstream, ostrstream, strstream, strstreambase,
strstreambuf
CLASE FILEBUF
attach
filebuf::attach
filebuf* attach(int da);
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.
close
class filebuf:public streambuf
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
filebuf::fd
filedesc fd() const;
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.
Atributo
Significado
0
1
2
4
8
Archivo normal, acceso abierto.
Archivo de sólo lectura.
Archivo oculto.
Archivo del sistema.
Establecer bit de archivar.
overflow
filebuf::overflow
virtual int overflow(int c = EOF);
filebuf
filebuf::filebuf
filebuf();
filebuf(int da);
filebuf(int da, char *pr, int n);
seekoff
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.
is_open
filebuf::is_open
int is_rtl_open();
Devuelve un valor distinto de cero si el archivo está abierto; en caso
contrario, 0.
open
Limpia un buffer hacia su destino. Cada clase derivada debe definir las
acciones que se tomen.
filebuf::open
filebuf::seekoff
virtual streampos seekoff(streamoff, ios::seek_dir, int)
Mueve el puntero (apuntador) relativo del archivo a la posición actual.
setbuf
filebuf::setbuf
virtual streambuf* setbuf(char *, int);
Especifica un buffer para este filebuf.
sync
filebuf::sync
filebuf* open(const char* nomarch, int modo,
int prot = filebuf::openprot);
virtual int sync();
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:
Establece consistencia entre estructuras de datos internas y la representación externa de flujo.
ios::app
ios::ate
ios::binary
ios::in
ios::nocreate
ios::noreplace
ios::out
ios::trunc
prot especifica el atributo del archivo
underflow
filebuf::underflow
virtual int 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++
G.2.
CLASE FSTREAM
class fstreambase::public ios
La clase fstream es una clase derivada de iostream, especializada para
entrada y salida combinada de archivos en disco.
Funciones miembro:
Archivo de cabecera
Constructores/Destructores
Funciones miembro
class fstream:public iostream
Archivo de cabecera:
Constructores/Destructores:
667
#include <fstream.h>
fstream (construye un objeto fstream)
~fstream (destruye un objeto fstream)
open
rdbuf
attach
open
fstream::open
void open(const char *, int, int = filebuf::openprot);
<fstream.h>
fstreambase();
~fstreambase();
attach
close
open
rdbuf
setbuf
fstreambase::attach
void attach(int);
Conecta este flujo al descriptor de archivos abierto.
Abre un archivo para un objeto fstream.
close
fstream
fstream::fstream
fstream();
fstream(const char *, int, int = filebuf::openprot);
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
fstreambase::close
void close();
Cierra el objeto filebuf asociado y el archivo.
open
fstreambase::open
void open(const char *, int, int = filebuf::openprot);
Abre un archivo para un streambase.
utiliza un archivo especificado.
rdbuf
rdbuf
fstreambase::rdbuf
fstream::rdbuf
filebuf* rdbuf();
filebuf*rdbuf();
Devuelve el filebuf utilizado.
Devuelve un puntero al objeto filebuf, que se asocia con este flujo.
G.3.
CLASE FSTREAMBASE
setbuf
void setbuf(char*, int);
Esta clase de flujo, derivada de ios, proporciona operaciones comunes a flujos de archivo. Sirve como base para fstream, ifstream y ofstream.
Utiliza un buffer especificado.
fstreambase::setbuf
668
PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS
fstreambase
fstreambase::fstreambase
fstreambase();
fstreambase(const char*, int, int = filebuf::openprot);
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
Archivo de cabecera:
Constructores/Destructores:
Funciones miembro:
ifstream
#include <fstream.h>
ifstream (construye un objeto ifstream)
~ifstream (destruye un objeto ifstream)
open
rdbuf
rdbuf
ifstream::rdbuf
filebuf* rdbuf();
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
Archivo de cabecera:
#include <iostream.h>
Constructores/Destructores: ios() (constructor para usar en clases derivadas)
~ios (destructor virtual)
Funciones miembro:
bad
bitalloc
clear
fail
flags
init
rdbuf
setf
sync_with_stdi
unsetf
xalloc
ifstream::ifstream
ifstream();
ifstream(const char*, int = ios::in, int = filebuf::openprot);
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.
open
bad
eof
fill
good
precision
rdstate
setstate
Atie
width
ios::bad
int bad();
Devuelve true (verdadero) si ha ocurrido un error fatal de E/S en el flujo
asociado; en caso contrario, se devuelve 0.
ifstream::open
void open(const char*, int, int = filebuf::openprot);
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++
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
669
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.
ios::clear
good
ios::good
void clear(int flags = 0);
int good();
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.
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.
init
eof
ios::init
ios::eof
void init(streambuf *);
int eof();
Proporciona la inicialización real.
Devuelve true (verdadero) cuando se encuentra el fin del archivo de
entrada asociado; en caso contrario, se devuelve 0.
precision
fail
ios::fail
ios::precision
int precision ();
int precision(int p);
int fail();
Devuelve true (verdadero, distinto de cero) si se ha producido un error
en la operación; en caso contrario, se devuelve 0.
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
rdbuf
ios::fill
char fill();
char fill(char car);
streambuf* rdbuf();
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.
Devuelve un puntero al objeto streambuf, que está asociado con este
flujo. La función rdbuf es útil cuando se necesita llamar a funciones miembro streambuf.
rdstate
flags
long flags();
long flags(long f);
ios::rdbuf
ios::flags
ios::rdstste
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
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.
setf
ios::setf
long setf(long flags);
long setf(long flags1, long flags2);
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
ios::unsetf
long unsetf(long flags);
Borra los bits correspondientes a los marcados en el parámetro flags;
devuelve la configuración anterior.
width
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.
ios::width
int width();
int width(int a);
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
setstate
ios::setstate
ios::xalloc
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.
protected:void saetstate(int);
Pone a uno todos los bits de estado.
G.6.
sync_with_stdio
ios:: sync_with_stdio
static void sync_with_stdio();
Mezcla archivos stdio e iostream..
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
Archivo de cabecera:
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++
iostream
iostream::iostream
671
Devuelve el número de caracteres extraído por la última función de
entrada sin formato.
iostream(streambuf*);
virtual ~iostream();
get
La primera función construye un objeto de tipo iostream. La segunda
función es un destructor virtual para la clase iostream.
G.7.
Esta clase es una subclase de iostream con un operador de asignación añadido.
#include <iostream.h>
iostream_withassign
~iostream_withassign
iostream_withassign
iostream_withassign();
~iostream_withassign();
Construyen y destruyen un objeto.
G.8.
int get();
istream& get(signed char*, int num, char separ = ´\n´);
istream& get(unsigned char*, int num, char separ = ´\n´);
CLASE IOSTREAM_WITHASSIGN
Archivo de cabecera:
Constructores/Destructores:
istream::get
CLASE ISTREAM
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
class istream:virtual public ios
istream& getline(signed char *bufer, int, char = ´\n´);
istream& getline(unsigned char *bufer, int, char = ´\n´);
Archivo de cabecera:
Constructor/Destructor:
Funciones miembro:
#include <iostream.h>
istream (construye un objeto istream conectado a un
objeto existente de una clase derivada de streambuf).
istream (destruye un objeto istream)
gcount
get
getline
ignore
peek
putback
read
seekg
tellg
istream::getline
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
istream& ignore(int num = 1, int separ = EOF);
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
istream:istream
istream::~istream
1. istream(streambuf *);
2. virtual ~istream();
(1) construye un objeto de una clase derivada de streambuf. (2) destructor virtual de la clase istream.
ción del cursor. El origen es de tipo ios::seek_dir y es una enumeración
que toma estos valores:
enum seek_dir
ios:: beg
ios::cur
ios::end
{beg, cur, end};
Búsqueda desde el principio.
Búsqueda desde la posición actual.
Búsqueda desde el final.
tellg
peek
istream::peek
istream::tellg
streampos tellg();
Devuelve la posición actual del flujo.
int peek();
Devuelve el siguiente carácter del flujo, sin extraerlo del flujo. Devuelve EOF, si se encuentra el final del archivo.
G.9.
putback
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.
istream::putback
istream& putback (char car);
class istream_withassign:public istream
Devuelve el carácter car al flujo de entrada asociado; car debe ser el
último carácter leído de ese flujo.
read
istream::read
1. istream & read(signed char* buf, int num);
2. istream & read(unsigned char* buf, int num);
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.
sekg
CLASE ISTREAM_WITHASSIGN
istream::seekg
1. istream& seekg(streampos);
2. istream& seekg(streampos, seek_dir);
Archivo de cabecera:
#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
Archivo de cabecera:
Constructor/Destructor:
G.11.
#include <strstream.h>
istrstream(const char *);
~istrstream(const char *, int n);
CLASE OFSTREAM
Esta clase es una clase derivada de ostream, que proporciona operaciones
de entrada en un filebuf.
(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 posi-
class ofstream:public ostream
BIBLIOTECA DE CLASES ANSI/ISO C++
Archivo de cabecera:
Constructor/Destructor:
Funciones miembro:
#include <fstream.h>
ofstream (construye un objeto ofstream)
~ofstream (destruye un objeto ofstream)
open
rdbuf
open
ofstream::open
void open(const char *, int = ios::out, int = filebuf::openprot);
Abre un archivo para un ofstream.
rdbuf
ostream::put
ostream& put(char)
La función put inserta un carácter en el flujo de salida. Devuelve una
referencia al flujo.
seekp
ostream::seekp
1. ostream& seekp(streampos);
2. ostream& seekp(streamoff, seek_dir);
ofstream::rdbuf
filebuf* rdbuf();
Devuelve el filebuf utilizado.
G.12.
put
673
(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);
Valor
CLASE OSTREAM
Proporciona características para salida secuencial y acceso aleatorio.
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
Archivo de cabecera:
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
tellp
put
write
seekp
tellp
ostream::tellp
streampos tellp();
Obtiene el valor de la posición actual del flujo.
write
flush
ostream::flush
ostream & flush();
ostream& write(const signed char* buf, int n);
ostream& write(const unsigned char*buf, int n);
Inserta un número especificado (n) de bytes, desde un buffer en el flujo
de salida asociado (buf).
Limpia el buffer asociado con el flujo.
ostream
ostream::write
ostream::ostream
1. ostream(streambuf *);
2. virtual ~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.
pcount
ostrstream::pcount
int pcount();
class ostream_withassign:public ostream
Archivo de cabecera:
#include <iostream.h>
Constructor/Destructor: ostream_withassign (construye un objeto)
~ostream_withassign (destruye un objeto)
Funciones miembro:
Ninguno (aunque el operador = está sobrecargado)
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
ostream_withassign
ostream_withassign::ostream_withassign
ostream_withassign();
~ostream::withassign();
char *str();
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.
Constructor y destructor por defecto.
G.14.
ostrstream::str
G.15.
CLASE OSTRSTREAM
CLASE STREAMBUF
Esta clase soporta flujos de salida que tienen arrays de caracteres como destino.
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 ostrstream:public ostream
class streambuf
Archivo de cabecera:
#include <strstrea.h>
Constructor/Destructor: ostrstream (construye un objeto ostrstream)
ostrstream (destruye un objeto ostrstream)
Funciones miembro:
pcount
str
Archivo de cabecera: #include <iostream.h>
Constructor/Destructor: streambuf (constructores para uso en clases derivadas)
~streambuf (destructor virtual)
Funciones miembro: allocate
base
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.
blen
ebuf
epptr
gptr
out_waiting
pbump
sbumpc
seekpos
setbuf
setp
sgetn
sputback
sputn
unbuffered
eback
egptr
gbump
in_avail
pbase
pptr
seekoff
setb
setg
sgetc
snextc
sputc
stossc
BIBLIOTECA DE CLASES ANSI/ISO C++
allocate
streambuf::allocate
protected:int allocate();
epptr
streambuf::epptr
protected: char *epptr();
Devuelve un puntero al byte después del último byte del área put.
Establece un área de buffer.
gbump
base
675
streambuf::gbump
streambuf::base
protected: void gbump(int);
protected:char *base();
Avanza el puntero get (incremento en número de bytes).
Devuelve un puntero al primer byte del área de reserva (espacio entre
los punteros devuelto por base y ebuf).
gptr
streambuf::gptr
protected:char*gptr();
blen
streambuf::blend
Devuelve la siguiente posición en el área de get.
protected:int blen();
in_avail
Devuelve el tamaño en bytes del área de reserva.
streambuf::in_avail
int in_avail();
eback
treambuf::eback
Devuelve el número de caracteres que permanecen en el buffer de entrada.
protected:char *eback();
out_waiting
streambuf::out_waiting
Devuelve el límite inferior del área get.
int out_waiting();
Devuelve el número de caracteres que permanecen en el buffer de salida.
ebuf
streambuf::ebuf
pbase
protected:char* ebuf();
Devuelve un puntero al byte después del último byte del área de reserva.
streambuf__pbase
protected:char *pbase();
Devuelve un puntero al comienzo del área put.
egptr
streambuf::egptr
protected::char* egptr();
Devuelve un puntero al byte después del último byte del área get.
pbump
protected:void pbump(int);
Avanza el puntero put.
streambuf::pbump
676
PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS
pptr
streambuf::pptr
Devuelve un puntero al primer byte del área put.
Establece los valores para los punteros del área get.
streambuf::sbumpc
setp
Devuelve el carácter actual y a continuación avanza el puntero get.
streambuf::seekoff
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).
Inicializa los punteros get.
sgetc
streambuf::sgetc
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.
sgetn
seekpos
streambuf::setp
protected:void setp (char *, char *);
int sbumpc();
seekoff
streambuf::setg
protected:void setg (char *, char *, char);
protected:char *pptr();
sbumpc
setg
streambuf::sgetn
streambuf::seekpos
int sgetn(char *, int n);
virtual streampos seekpos (streampos, int = (ios::in|ios::out));
Mueve el puntero get o put a una posición absoluta.
setb
streambuf::setb
protected:void setb(char *, char *, int suprimir = 0);
Establece el área de buffer. suprimir controla la supresión automática.
setbuf
Obtiene los siguientes n caracteres del buffer de entrada.
snextc
streambuf::snextc
int snextc();
Primero comprueba el puntero get, después devuelve EOF si ya está al
final del área get.
streambuf::setbuf
sputback
streambuf::sputback
virtual streambuf * setbuf(signed char *, int);
streambuf* setbuf(unsigned char *, int);
int sputback(char);
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.
BIBLIOTECA DE CLASES ANSI/ISO C++
sputc
streambuf::sputc
Almacena un carácter en el buffer de salida.
sputn
class strstreambase
Archivo de cabecera:
Constructor/Destructor:
int sputc(int);
Funciones miembro:
streambuf::sputn
int sputn(const char *, int n);
#include <strstrea.h>
strstreambase (construye un objeto)
~strstreambase (destruye un objeto)
rdbuf
rdbuf
strstreambase::rdbuf
strstreambuf *rdbuf();
Copia n caracteres en el buffer de salida. Devuelve el número de caracteres almacenados (n, aunque pueden ser menos si ocurre un error).
Devuelve un puntero al strstreambuf asociado con ese objeto.
strstreambase
stossc
strambuf::stossc
void stossc();
Avanza al siguiente carácter en el buffer de entrada.
streambuf
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::streambuf
G.17.
1. protected:streambuf();
2. protected:streambuf(char *, int);
3. protected:virtual ~streambuf();
CLASE STRSTREAMBUF
La clase strstreambuf es una clase derivada de streambuf que gestiona un
array de caracteres en memoria.
(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
streambuf::unbuffered
1. protected:void unbuffered(int);
2. protected: int unbuffered();
class strstreambuf:public streambuf
Archivo de cabecera:
Constructor/Destructor:
Funciones miembro:
(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.
#include <strstrea.h>
stratreambuf (construye un objeto)
~strstreambuf (destruye un objeto)
doallocate
freeze
overflow
seekoff
setbuf
str
underflow
doallocate
G.16.
677
CLASE STRSTREAMBASE
Esta clase es totalmente protegida. Es clase base de strstream, istrstream y ostrstream.
strstreambuf::doallocate
virtual int doallocate();
Realiza asignación de bajo nivel a un buffer.
678
PROGRAMACIÓN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS
freeze
strstreambuf::freeze
void freeze(int n = 1);
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
virtual int underflow();
overflow
strstreambuf::overflow
Hace una entrada disponible. Se llama cuando se solicita un carácter y
el streambuf está vacío.
virtual int overflow(int = EOF);
Limpia un buffer.
seekoff
strstreambuf::seekoff
virtual streampos seekoff(streamoff, ios::seek_dir, int);
CLASE STRSTREAM
Esta clase proporciona entrada y salida simultánea en un stratreambuf.
Class strstream:public iostream, public strstreambase
Mueve el puntero relativo a la posición actual.
setbuf
G.18.
strstreambuf::setbuf
Archivo de cabecera:
Constructor/Destructor:
Funciones miembro:
virtual streambuf* setbuf(char *, int);
#include <strstrea.h>
strstream (construye un objeto)
~strstream (destruye un objeto)
str
Especifica el buffer que se ha de utilizar.
str
str
strstreambuf::str
char *str();
Devuelve un puntero al buffer y provoca una llamada a la función freeze.
strstreambuf
1.
2.
3.
4.
5.
strstreambuf::strstreambuf
strstreambuf();
strstreambuf(void *(*) (long), void (*) (void *));
strstreambuf(int n);
strstreambuf(signed char *, int, signed char *end “0);
strstreambuf(unsigned char *, int, unsigned char *end”0);
strstream::str
char *str();
Devuelve y congela el buffer. El usuario debe desasignarlo si era dinámico.
strstream
strstream::strstream
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.
Descargar