Sei sulla pagina 1di 14

APNDICE 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 alfabtico las funciones miembro ms frecuentemente
utilizadas de la jerarqua de clases. Como ya conoce el lector, a las clases se
accede a travs de la inclusin de archivos. La Tabla G.1 lista los archivos
de cabecera relativos a clases, con indicacin 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 estndar

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 descripcin de archivo abierto.

Clase especializada para E/S por archivos de disco a travs de buffer.

close

class filebuf:public streambuf

filebuf* close();

filebuf::close

666

PROGRAMACIN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS

Limpia y cierra el archivo. Si ocurre un error, la funcin devuelve NULL;


si no hay error, la funcin devuelve la direccin 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 funcin devuelve EOF.

Atributo

Significado

0
1
2
4
8

Archivo normal, acceso abierto.


Archivo de slo 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 posicin 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 cmo se


abre el archivo y debe ser uno (o ms) de estos valores:

Establece consistencia entre estructuras de datos internas y la representacin 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 ningn dato


ms 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 funcin 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

PROGRAMACIN 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 automticamente 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 tcnicamente una clase base abstracta, se
podrn 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 mscara 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 ningn 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 inicializacin 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 operacin; en caso contrario, se devuelve 0.

El primer formato devuelve la precisin real de coma flotante (sin dgitos


se visualizan despus del punto decimal). Con el segundo formato se puede
establecer la precisin (el nmero de dgitos) 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 carcter de rellenado utilizando la
funcin fill()y especificando el nuevo carcter de rellenado en car. El
primer formato devuelve el carcter de relleno actual.

Devuelve un puntero al objeto streambuf, que est asociado con este


flujo. La funcin 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 mscaras o indicadores:

670

PROGRAMACIN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS

Nombre
ios::goodbit
ios::eoffbit
ios::failbit
ios::badbit

Significado
0, no se produce ningn 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 funcin 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 funcin 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 parmetro flags;


devuelve la configuracin anterior.
width

Establece los indicadores correspondientes a los sealados en el parmetro flags; devuelve los parmetros anteriores. El segundo formato afecta slo a los indicadores (flags) que se establecen en flags2. Los indicadores correspondientes se ponen primero a cero y a continuacin se ponen
a 1, de acuerdo a los indicadores especificados por indicadores1. Ambos
formatos de setf() devuelven la configuracin anterior de los indicadores
de formato asociados con el flujo.

ios::width

int width();
int width(int a);

La primera funcin obtiene la anchura del campo actual. La segunda


funcin 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 nmero de caracteres extrado por la ltima funcin de


entrada sin formato.

iostream(streambuf*);
virtual ~iostream();
get

La primera funcin construye un objeto de tipo iostream. La segunda


funcin es un destructor virtual para la clase iostream.

G.7.

Esta clase es una subclase de iostream con un operador de asignacin aadido.


#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 parmetros lee un nico carcter del flujo asociado y devuelve ese valor. El formato de get, que toma tres parmetros, lee caracteres del flujo hasta que o
bien num caracteres se han ledo, o el carcter especificado por separ se ha
encontrado, o se alcanza el final del archivo. Los caracteres se almacenan en
el array seguido por un carcter nulo. El formato con un solo parmetro
extrae un nico carcter de flujo y lo almacena en el especificado por el
argumento de referencia. Por ltimo, el formato con dos parmetros 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 bsica 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

Acta igual que get, con la diferencia de que tambin 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 carcter especificado por separ (EOF, por defecto) se encuentra.

672

PROGRAMACIN 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.

cin del cursor. El origen es de tipo ios::seek_dir y es una enumeracin


que toma estos valores:
enum seek_dir
ios:: beg
ios::cur
ios::end

{beg, cur, end};

Bsqueda desde el principio.


Bsqueda desde la posicin actual.
Bsqueda desde el final.

tellg
peek

istream::peek

istream::tellg

streampos tellg();

Devuelve la posicin actual del flujo.

int peek();

Devuelve el siguiente carcter 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 adicin de un


operador de asignacin. El objeto predefinido cin es un objeto de esta clase y
se puede reasignar en tiempo de ejecucin a un objeto diferente istream.

istream::putback

istream& putback (char car);

class istream_withassign:public istream

Devuelve el carcter car al flujo de entrada asociado; car debe ser el


ltimo carcter ledo 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
ledo num caracteres, read() se detiene y el buffer contiene tantos caracteres como estuvieran disponibles. Si se produce un error, utilice gcount().
La funcin 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 posicin absoluta (devuelta por
tellg). (2) mueve el puntero del archivo a una posicin 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 funcin put inserta un carcter 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 posicin absoluta. (2) se mueve a una posicin relativa a la posicin actual, a continuacin de la definicin. La direccin de
bsqueda se especifica por el tipo enumerado enum seek_dir(beg, cur,
end);

Valor

CLASE OSTREAM

Proporciona caractersticas para salida secuencial y acceso aleatorio.

ios::beg
ios::cur
ios::end

Significado
Bsqueda desde el principio del flujo.
Bsqueda desde la posicin actual en el flujo.
Bsqueda 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 posicin 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 nmero 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 asignacin de objetos.


Los objetos predefinidos cout, cerr y clog son objetos de esta clase, y

674

PROGRAMACIN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS

por consiguiente, se pueden reasignar en tiempo de ejecucin 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 nmero de bytes actualmente almacenados en el buffer.


Esta informacin 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 dinmicamente y devuelve un puntero al mismo. Una vez que
un array dinmico 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 fsicos.

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 dinmico 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 parmetro 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 despus 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 nmero 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 posicin en el rea de get.

protected:int blen();
in_avail

Devuelve el tamao en bytes del rea de reserva.

streambuf::in_avail

int in_avail();
eback

treambuf::eback

Devuelve el nmero de caracteres que permanecen en el buffer de entrada.

protected:char *eback();
out_waiting

streambuf::out_waiting

Devuelve el lmite inferior del rea get.


int out_waiting();

Devuelve el nmero de caracteres que permanecen en el buffer de salida.


ebuf

streambuf::ebuf
pbase

protected:char* ebuf();

Devuelve un puntero al byte despus 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 despus del ltimo byte del rea get.

pbump

protected:void pbump(int);

Avanza el puntero put.

streambuf::pbump

676

PROGRAMACIN 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 carcter actual y a continuacin 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 operacin


(entrada/salida).

Inicializa los punteros get.

sgetc

streambuf::sgetc

int sgetc();

Devuelve el carcter en el puntero get. La funcin sgetc no mueve el


puntero get. Devuelve EOF si no hay carcter 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 posicin absoluta.

setb

streambuf::setb

protected:void setb(char *, char *, int suprimir = 0);

Establece el rea de buffer. suprimir controla la supresin automtica.

setbuf

Obtiene los siguientes n caracteres del buffer de entrada.

snextc

streambuf::snextc

int snextc();

Primero comprueba el puntero get, despus 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 carcter a la entrada. Retrocede el puntero get una posicin.

BIBLIOTECA DE CLASES ANSI/ISO C++


sputc

streambuf::sputc

Almacena un carcter 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 nmero 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 carcter en el buffer de entrada.


streambuf

strstreambase::strstreambase

1. protected:strstreambase();
2. protected:strstreambase(char *, int, char *inicio);

(1) crea un objeto vaco. (2) crea un objeto y le asocia un buffer especificado y una posicin 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 vaco. (2) utiliza un array y tamao 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 travs de buffer. (2) devuelve un valor distinto de cero si no se realiza a travs 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 asignacin de bajo nivel a un buffer.

678

PROGRAMACIN EN C++. ALGORITMOS, ESTRUCTURAS Y OBJETOS

freeze

strstreambuf::freeze

void freeze(int n = 1);

La funcin freeze proporciona un medio de prevenir la supresin


automticamente. Para un parmetro distinto de cero, por defecto, se impide la entrada de nuevos caracteres en el buffer; un parmetro nulo proporciona una congelacin de la situacin.

(1) construye un strstreambuf dinmico, la memoria se asignar dinmicamente a medida que se necesita. (2) construye un buffer dinmico. (3)
construye un strstreambuf asignando inicialmente un buffer de al menos
n bytes. (4) y (5) construye un strstreambuf esttico con un buffer especificado.

underflow

strstreambase::underflow

virtual int underflow();


overflow

strstreambuf::overflow

Hace una entrada disponible. Se llama cuando se solicita un carcter y


el streambuf est vaco.

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 simultnea en un stratreambuf.


Class strstream:public iostream, public strstreambase

Mueve el puntero relativo a la posicin 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 funcin 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 *end0);

strstream::str

char *str();

Devuelve y congela el buffer. El usuario debe desasignarlo si era dinmico.

strstream

strstream::strstream

1. strstream();
2. strstream(char *, int n, int modo);

(1) construye un objeto dinmico. (2) construye un objeto, asocindole


un buffer esttico de n bytes.