PDF de programación - Entrada/Salida en C++

Imágen de pdf Entrada/Salida en C++

Entrada/Salida en C++gráfica de visualizaciones

Publicado el 14 de Enero del 2017
877 visualizaciones desde el 14 de Enero del 2017
3,8 MB
34 paginas
Creado hace 16a (03/05/2007)
Ampliación de Sistemas Operativos – Trabajo voluntario Tema 1

Francisco Charte Ojeda

ENTRADA/SALIDA EN C++

ENTRADA/SALIDA EN C++

 Principales características

 Jerarquía de clases de E/S

 Aspectos generales sobre E/S

 Trabajo con archivos

 E/S sobre cadenas de caracteres

 Control de estado del stream

 Flujos predefinidos

PRINCIPALES CARACTERÍSTICAS

 Orientada a objetos

 No hay descriptores de archivo que facilitar a las funciones,

únicamente objetos que abstraen el concepto de archivo y
cuentan con métodos que operan sobre él.

 Sobrecarga de operadores

 Uso más intuitivo

 Uniformidad en las operaciones

 Independiente respecto al origen y destino del flujo de datos,

pudiendo trabajarse de manera uniforme con archivos en disco,
cadenas de caracteres, sockets, etc.

 Extensible

 Es posible definir operadores de inserción y extracción para tipos

propios, manipuladores a medida e incluso clases nuevas de
stream a partir de los existentes.

ios

istream

fstreambase

strstreambase

ostream

ifstream

istrstream

iostream

ofstream

ostrstream

fstream

strstream

ios

Incorpora los miembros

necesarios para mantener la

configuración del stream, así como

istream

fstreambase

los métodos oportunos para

ostream

strstreambase
gestionarlos.

ifstream

istrstream

iostream

ofstream

ostrstream

fstream

strstream

ios

istream

fstreambase

strstreambase

ostream

Derivada de ios, básicamente

define métodos y operadores para
realizar operaciones de entrada de

datos

ifstream

istrstream

iostream

ofstream

ostrstream

fstream

strstream

ios

istream

fstreambase

strstreambase

ostream

Complementaria a istream, define
métodos y operadores para realizar

operaciones de salida de datos

ifstream

istrstream

iostream

ofstream

ostrstream

fstream

strstream

ios

istream

fstreambase

strstreambase

ostream

Implementa la funcionalidad

básica para el trabajo con archivos

en disco

ifstream

istrstream

iostream

ofstream

ostrstream

fstream

strstream

ios

istream

fstreambase

strstreambase

ostream

Implementa la funcionalidad

básica para operar sobre zonas de
memoria como si fuesen flujos de

caracteres

ifstream

istrstream

iostream

ofstream

ostrstream

fstream

strstream

ios

istream

fstreambase

strstreambase

ostream

ifstream

istrstream

iostream

ofstream

ostrstream

Derivada de istream y fstreambase,
aporta los operadores y métodos para
extracción de datos de un stream en

disco

fstream

strstream

ios

istream

fstreambase

strstreambase

ostream

ifstream

istrstream

iostream

ofstream

ostrstream

Análoga a ifstream para

operaciones de salida

fstream

strstream

ios

istream

fstreambase

strstreambase

ostream

ifstream

istrstream

iostream

ofstream

ostrstream

Derivada de istream y

strstreambase, aporta los

operadores y métodos para extracción

de datos de un stream en memoria

fstream

strstream

ios

istream

fstreambase

strstreambase

ostream

ifstream

istrstream

iostream

ofstream

ostrstream

Análoga a istrstream para

operaciones de salida

fstream

strstream

ios

istream

fstreambase

strstreambase

ostream

ifstream

istrstream

iostream

ofstream

ostrstream

Mediante herencia múltiple,

facilita operaciones de entrada y

fstream

salida sobre flujos de datos
strstream

ios

istream

fstreambase

strstreambase

ostream

ifstream

istrstream

iostream

ofstream

ostrstream

Facilita la entrada

y salida sobre
streams en disco

fstream

strstream

ios

istream

fstreambase

strstreambase

ostream

ifstream

istrstream

iostream

ofstream

ostrstream

fstream

strstream

Facilita la

entrada y salida
sobre streams

en memoria

ASPECTOS GENERALES SOBRE E/S

 Los operadores de inserción y extracción, << y

>> respectivamente, están sobrecargados para
todos los tipos de datos intrínsecos, sin
importar el tipo de stream sobre el que se
trabaja.

ASPECTOS GENERALES SOBRE E/S

 En iomanip se definen una serie de

manipuladores que facilitan la aplicación de
formato a la hora de dar salida a los datos o
establecer restricciones a la entrada.

ASPECTOS GENERALES SOBRE E/S

 En iomanip se definen una serie de

Manipulador

Función

manipuladores que facilitan la aplicación de
formato a la hora de dar salida a los datos o
establecer restricciones a la entrada.
Determina el número de posiciones decimales

Establecer el ancho del dato

Fija el carácter de relleno

setw(n)

setfill(char)

setprecision(n)

hex, dec y oct

Establecen la base de numeración con la que se dará salida a
los datos

endl

ws

flush

Introduce en la salida un salto de carro

Ignora en la entrada los espacios en blanco

Fuerza la salida de los datos del flujo hacia su destino

ASPECTOS GENERALES SOBRE E/S

 Además de operadores, también existen métodos

generales para la lectura y escritura de datos:
 read y write: Son los métodos de más bajo nivel,
análogos a los homónimos de Unix. Permiten leer y
escribir cualquier secuencia de bytes.

 get y put: Existen diferentes versiones sobrecargadas
de estos métodos, que facilitan la recuperación y envío
de caracteres.

 getline: Es un método con el que cuentan con los
flujos de entrada para leer líneas completas de texto.

ASPECTOS GENERALES SOBRE E/S

 Además de operadores, también existen métodos

generales para la lectura y escritura de datos:
 read y write: Son los métodos de más bajo nivel,
análogos a los homónimos de Unix. Permiten leer y
escribir cualquier secuencia de bytes.

 get y put: Existen diferentes versiones sobrecargadas
de estos métodos, que facilitan la recuperación y envío
de caracteres.

 getline: Es un método con el que cuentan con los
flujos de entrada para leer líneas completas de texto.

ASPECTOS GENERALES SOBRE E/S

 En los flujos que lo permitan, es posible desplazar

el puntero de lectura/escritura con el método
seekg, facilitando un desplazamiento y una de
las tres constantes siguientes:
 ios::beg: El desplazamiento será absoluto.
 ios::cur: El desplazamiento será relativo respecto a

la posición actual.

 ios::end: El desplazamiento será relativo respecto al

fin de archivo.

 Para determinar la posición actual en el flujo

existe el método tellg.

TRABAJO CON ARCHIVOS

 Los flujos sobre archivos en disco vienen representados
por las clases ifstream, ofstream y fstream, con
las que es posible leer de un archivo, escribir en un
archivo o leer y escribir, respectivamente.

 Estas clases heredan de fstreambase métodos como

open y close, para abrir y cerrar la conexión con el
archivo, y de las clases istream y ostream los
operadores y métodos necesarios para escribir o leer.

 El constructor de estas clases acepta como argumento

la ruta del archivo a abrir y, opcionalmente, unos
indicadores de modo de apertura.

TRABAJO CON ARCHIVOS

Significado

El archivo se abre para lectura

El archivo se abre para escritura

in

out

trunc

Modo
 Los flujos sobre archivos en disco vienen representados
por las clases ifstream, ofstream y fstream, con
las que es posible leer de un archivo, escribir en un
archivo o leer y escribir, respectivamente.
Se abre para añadir información al archivo

app
 Estas clases heredan de fstreambase métodos como
ate

open y close, para abrir y cerrar la conexión con el
archivo, y de las clases istream y ostream los
operadores y métodos necesarios para escribir o leer.

noreplace
 El constructor de estas clases acepta como argumento
nocreate

Abrir un archivo que no existe, no sustituir un existente

Elimina el contenido del archivo si éste no está vacío

Posiciona el puntero inicialmente al final del archivo

Abrir un archivo que existe, no crearlo

binary

la ruta del archivo a abrir y, opcionalmente, unos
indicadores de modo de apertura.

Abrir el archivo en modo binario en lugar de texto

EJEMPLOS DE APERTURA DE ARCHIVOS

TRABAJO CON ARCHIVOS

 Si no se abre el archivo al construir el objeto que
lo representa, es preciso utilizar el método open
entregándole los mismos argumentos que al
constructor.

 El método close cierra la conexión con el

archivo.

 Mientras está abierto, y dependiendo del modo de
apertura, es posible utilizar sobre el archivo todos
los métodos y operadores de lectura y escritura
descritos anteriormente.

TRABAJO CON ARCHIVOS

 Si no se abre el archivo al construir el objeto que
lo representa, es preciso utilizar el método open
entregándole los mismos argumentos que al
constructor.

 El método close cierra la conexión con el

archivo.

 Mientras está abierto, y dependiendo del modo de
apertura, es posible utilizar sobre el archivo todos
los métodos y operadores de lectura y escritura
descritos anteriormente.

E/S SOBRE CADENAS DE CARACTERES

 Los streams en memoria permiten escribir y leer
datos que se almacenan temporalmente en una
cadena de caracteres, utilizando para ello los
operadores habituales de inserción y extracción.

 Al crear un objeto stringstream puede

facilitarse como argumento al constructor una
cadena con contenido inicial.

 La información almacenada en este tipo de flujos
se pierde en cuanto se destruye el objeto que los
representa, ya que no hay un soporte físico que
almacene realmente los datos.

E/S SOBRE CADENAS DE CARACTERES

 Los streams en memoria permiten escribir y leer
datos que se almacenan temporalmente en una
cadena de caracteres, utilizando para ello los
operadores habituales de inserción y extracción.

 Al crear un objeto stringstream puede

facilitarse como argumento al constructor una
cadena con contenido inicial.

 La información almacenada en este tipo de flujos
se pierde en cuanto se destruye el objeto que los
representa, ya que no hay un soporte físico que
almacene realmente los datos.

CONTROL DE ESTADO DEL STREAM

 Todos las clases derivadas de ios heredan una serie de indicadores
de estado que nos permiten saber cómo ha quedado el stream tras
l
  • Links de descarga
http://lwp-l.com/pdf1817

Comentarios de: Entrada/Salida en C++ (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad