PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con...

41
Programaci´ on orientada a objetos C++ PROGRAMACI ´ ON ORIENTADA A OBJETOS Operaciones con ficheros en C++ Prof. Dr. Nicol´ as Luis Fern´ andez Garc´ ıa Departamento de Inform´ atica y An´ alisis Num´ erico Escuela Polit´ ecnica Superior Universidad de C´ordoba Curso acad´ emico 2011 - 2012 Universidad de C´ordoba: Escuela Polit´ ecnica Superior Grado en Ingenier´ ıa Inform´ atica 1/ 41

Transcript of PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con...

Page 1: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

PROGRAMACION ORIENTADA A OBJETOSOperaciones con ficheros en C++

Prof. Dr. Nicolas Luis Fernandez Garcıa

Departamento de Informatica y Analisis NumericoEscuela Politecnica Superior

Universidad de Cordoba

Curso academico 2011 - 2012

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 1 / 41

Page 2: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

Contenido del tema

1 Ficheros

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 2 / 41

Page 3: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

Contenido de la seccion

1 FicherosFicheros de cabeceraDeclaracion de flujosApertura de ficherosDeclaracion de flujo y apertura de un ficheroExistencia de un ficheroCierre de ficherosLectura y escritura en ficheros de textoLectura y escritura en ficheros binariosPosicionamiento en un ficheroOtras funciones de ficheros

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 3 / 41

Page 4: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosFicheros de cabecera

Ficheros de cabecera

#include<iostream>

#include<fstream>

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 4 / 41

Page 5: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

Contenido de la seccion

1 FicherosFicheros de cabeceraDeclaracion de flujosApertura de ficherosDeclaracion de flujo y apertura de un ficheroExistencia de un ficheroCierre de ficherosLectura y escritura en ficheros de textoLectura y escritura en ficheros binariosPosicionamiento en un ficheroOtras funciones de ficheros

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 5 / 41

Page 6: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosDeclaracion de flujos

Declaracion de flujos

ifstream entrada;

ofstream salida;

fstream entrada salida;

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 6 / 41

Page 7: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

Contenido de la seccion

1 FicherosFicheros de cabeceraDeclaracion de flujosApertura de ficherosDeclaracion de flujo y apertura de un ficheroExistencia de un ficheroCierre de ficherosLectura y escritura en ficheros de textoLectura y escritura en ficheros binariosPosicionamiento en un ficheroOtras funciones de ficheros

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 7 / 41

Page 8: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosApertura de ficheros

Apertura de un fichero

void ifstream::open (const char * filename, int ios::openmodemode = ios::in);

void ofstream::open (const char * filename, int ios::openmodemode= ios::out|ios::trunc);

void fstream::open (const char * filename, int ios::openmodemode= ios::in|ios::out);

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 8 / 41

Page 9: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosApertura de ficheros

Modos de apertura de un fichero (1/2)

ios::in: abre un fichero en modo de entrada (lectura).

Si el fichero no existe, falla la apertura

ios::out: abre un fichero en modo de salida (escritura).

Si el fichero existe, lo vacia.

ios::binary: abre un fichero en modo binario

Por defecto, los ficheros son abiertos en modo texto.En modo texto, se puede producir la conversion de algunoscaracteres: salto de lınea, retorno de carro, etc.Cualquier fichero puede ser abierto en modo texto o en modobinario.

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 9 / 41

Page 10: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosApertura de ficheros

Modos de apertura de un fichero (2/2)

ios::trunc: descarta el contenido del fichero si es que existe; esla accion predeterminada de ios::out

ios::app: la escritura en el fichero siempre se realiza al final.

ios::ate: abre el fichero y se situa al final del fichero.

Los datos pueden leerse o escribirse en cualquier parte delfichero.El significado de ate es at end, al fin.

ios::nocreate: si no existe el fichero entonces genera un error.

ios::noreplace: si existe el fichero entoces genera un error

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 10 / 41

Page 11: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosApertura de ficheros

Combinacion de modos de apertura de un fichero

ios::in|ios::out: abre un fichero para lectura y escritura.

Si el fichero no existe, falla la apertura

ios::in|ios::binary: abre un fichero para lectura en modobinario.

Si el fichero no existe, falla la apertura

ios::in|ios::out|ios::trunc: abre un fichero para lectura yescritura.

Si el fichero no existe, lo crea.Si el fichero existe, lo vacia.

ios::out|ios::app: abre un fichero para anadir.

Si el fichero no existe, lo crea.

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 11 / 41

Page 12: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosApertura de ficheros

Ejemplo (Apertura de ficheros de entrada o lectura)

ifstream entrada1, entrada2;

entrada1.open(“fichero entrada1”,ios::in);

entrada2.open (“fichero entrada2”);

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 12 / 41

Page 13: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosApertura de ficheros

Ejemplo (Apertura de ficheros de salida o escritura)

ofstream salida1, salida2;

salida1.open(“fichero salida1”,ios::out|ios::trunc);

salida2.open (“fichero salida2”);

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 13 / 41

Page 14: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosApertura de ficheros

Ejemplo (Apertura de ficheros de entrada y salida)

fstream entrada salida1, entrada salida2;

entrada salida1.open(“fichero salida1”,ios::in|ios::out);

entrada salida2.open(“fichero salida2”);

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 14 / 41

Page 15: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

Contenido de la seccion

1 FicherosFicheros de cabeceraDeclaracion de flujosApertura de ficherosDeclaracion de flujo y apertura de un ficheroExistencia de un ficheroCierre de ficherosLectura y escritura en ficheros de textoLectura y escritura en ficheros binariosPosicionamiento en un ficheroOtras funciones de ficheros

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 15 / 41

Page 16: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosDeclaracion de flujo y apertura de un fichero

Declaracion de flujo y apertura de un fichero

ifstream entrada (“nombre fichero”);

ofstream salida(“nombre fichero”);

fstream entrada salida(“nombre fichero”);

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 16 / 41

Page 17: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

Contenido de la seccion

1 FicherosFicheros de cabeceraDeclaracion de flujosApertura de ficherosDeclaracion de flujo y apertura de un ficheroExistencia de un ficheroCierre de ficherosLectura y escritura en ficheros de textoLectura y escritura en ficheros binariosPosicionamiento en un ficheroOtras funciones de ficheros

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 17 / 41

Page 18: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosExistencia de un fichero

Existencia de un fichero

Si la funcion open no puede abrir un fichero entonces el flujotomara el valor false

Ejemplo

ifstream entrada;

entrada.open(‘‘fichero entrada’’,ios::in);

if (!entrada)

cout << ‘‘No se puede abrir el fichero’’;

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 18 / 41

Page 19: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosExistencia de un fichero

Existencia de un fichero

Si la funcion open no puede abrir un fichero entonces el flujotomara el valor false

Ejemplo

ifstream entrada;

entrada.open(‘‘fichero entrada’’,ios::in);

if (!entrada)

cout << ‘‘No se puede abrir el fichero’’;

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 19 / 41

Page 20: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosExistencia de un fichero

Existencia de un fichero

La funcion is open devuelve true si el fichero esta abierto yfalse en caso contrario

Ejemplo

ifstream entrada;

entrada.open(‘‘fichero entrada’’,ios::in);

if (!entrada.is open())

cout << ‘‘No se puede abrir el fichero’’;

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 20 / 41

Page 21: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosExistencia de un fichero

Existencia de un fichero

La funcion is open devuelve true si el fichero esta abierto yfalse en caso contrario

Ejemplo

ifstream entrada;

entrada.open(‘‘fichero entrada’’,ios::in);

if (!entrada.is open())

cout << ‘‘No se puede abrir el fichero’’;

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 21 / 41

Page 22: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

Contenido de la seccion

1 FicherosFicheros de cabeceraDeclaracion de flujosApertura de ficherosDeclaracion de flujo y apertura de un ficheroExistencia de un ficheroCierre de ficherosLectura y escritura en ficheros de textoLectura y escritura en ficheros binariosPosicionamiento en un ficheroOtras funciones de ficheros

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 22 / 41

Page 23: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosCierre de ficheros

Cierre de un fichero

void close();

Ejemplo

entrada1.close();

salida1.close();

entrada salida1.close();

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 23 / 41

Page 24: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosCierre de ficheros

Cierre de un fichero

void close();

Ejemplo

entrada1.close();

salida1.close();

entrada salida1.close();

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 24 / 41

Page 25: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

Contenido de la seccion

1 FicherosFicheros de cabeceraDeclaracion de flujosApertura de ficherosDeclaracion de flujo y apertura de un ficheroExistencia de un ficheroCierre de ficherosLectura y escritura en ficheros de textoLectura y escritura en ficheros binariosPosicionamiento en un ficheroOtras funciones de ficheros

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 25 / 41

Page 26: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosLectura y escritura en ficheros de texto

Lectura y escritura en ficheros de texto

Metodo mas sencillo: utilizar los operadores << y >>.

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 26 / 41

Page 27: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosLectura y escritura en ficheros de texto

Ejemplo (Escritura en un fichero de texto)

// Declaracion

ofstream flujo salida;

// Apertura del fichero

flujo salida.open(‘‘prueba.txt’’);

// Escritura en el fichero

flujo salida << 10 << ‘‘ ’’ << 19.75 << ’X’;

flujo salida << ‘‘Final del programa’’;

// Cierre del fichero

flujo salida.close();

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 27 / 41

Page 28: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosLectura y escritura en ficheros de texto

Ejemplo (Lectura de un fichero de texto)

char caracter; float f; int i; char cadena[80];

// Declaracion

ifstream flujo entrada;

// Apertura del fichero

flujo entrada.open(‘‘prueba.txt’’);

// Lectura del fichero de texto: entero, real y caracter

flujo entrada >> i >> f >> caracter;

// Lee hasta que encuentra el primer caracter blanco

flujo entrada >> cadena;

// Cierre del fichero

flujo entrada.close();

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 28 / 41

Page 29: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

Contenido de la seccion

1 FicherosFicheros de cabeceraDeclaracion de flujosApertura de ficherosDeclaracion de flujo y apertura de un ficheroExistencia de un ficheroCierre de ficherosLectura y escritura en ficheros de textoLectura y escritura en ficheros binariosPosicionamiento en un ficheroOtras funciones de ficheros

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 29 / 41

Page 30: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosLectura y escritura en ficheros binarios

Lectura de ficheros binarios (1/5)

get:istream & get (char & caracter);

Lee un caracter (byte) del flujo de entrada y lo almacena en elparametro formal caracter

int get ();

Lee un caracter (byte) del flujo de entrada y devuelve sucodigo ASCIISe utiliza para detectar el final de archivo (eof) que se suelerepresentar por -1

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 30 / 41

Page 31: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosLectura y escritura en ficheros binarios

Lectura de ficheros binarios (2/5)

get:istream & get (char *buffer, int numero, char delimitador =’\n’);

Lee caracteres del flujo de entrada y los almacena en bufferhasta que haya leıdo numero - 1 caracteres o el caracterdelimitador o se haya encontrado el final del fichero.Se anade el caracter nulo al final de buffer.Si se encuentra el caracter delimitador, no es extraıdo, sinoque permanece en el flujo de entrada hasta la siguienteoperacion de lectura.

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 31 / 41

Page 32: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosLectura y escritura en ficheros binarios

Lectura de ficheros binarios (3/5)

void getline(char *buffer, int numero, char delimitador =’\n’);

Lee cadenas de caracteres, incluyendo espacios en blanco, y lasalmacena en buffer

Nota

La diferencia entre get y getline se encuentra en que getlinealmacena el caracter delimitador en la cadena antes de anadir elcaracter nulo.

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 32 / 41

Page 33: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosLectura y escritura en ficheros binarios

Lectura de ficheros binarios (4/5)

read: lee numero bytes y los almacena en buffer

istream & read(char *buffer, int numero);istream & read(unsigned *buffer, int numero);istream & read(signed char *buffer, int numer);

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 33 / 41

Page 34: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosLectura y escritura en ficheros binarios

Lectura de ficheros binarios (5/5)

istream & putback (char caracter);

Devuelve al flujo de entrada el ultimo caracter leıdo.

int peek():

Lee el caracter actual del flujo de entrada pero no avanza.

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 34 / 41

Page 35: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosLectura y escritura en ficheros binarios

Escritura en ficheros binarios

ostream & put (char caracter);

Escribe un caracter (byte) en el flujo de salida

write: escribe numero bytes de buffer en el flujo de salida

ostream & write(const char *buffer, int numero);ostream & write(const unsigned *buffer, int numero);ostream & write(const signed char *buffer, int numero);

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 35 / 41

Page 36: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

Contenido de la seccion

1 FicherosFicheros de cabeceraDeclaracion de flujosApertura de ficherosDeclaracion de flujo y apertura de un ficheroExistencia de un ficheroCierre de ficherosLectura y escritura en ficheros de textoLectura y escritura en ficheros binariosPosicionamiento en un ficheroOtras funciones de ficheros

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 36 / 41

Page 37: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosPosicionamiento en un fichero

Posicionamiento en un fichero de lectura

seekg:istream & seekg(streampos pos);

Posiciona el cursor de lectura en el lugar indicado por pos

istream & seekg(streamoff desp, seek dir dir);

Desplaza el cursor de lectura el numero de bytes indicados pordesp teniendo en cuenta la direccion especificada por dir: beg,cur, end (principio, posicion actual y final del fichero).

streampos tellg();

Devuelve la posicion actual del flujo de entrada o -1 si seproduce un error.

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 37 / 41

Page 38: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosPosicionamiento en un fichero

Posicionamiento en un fichero de escritura

seekp:ostream & seekp(streampos pos);

Posiciona el cursor de escritura en el lugar indicado por pos

ostream & seekp(streamoff desp, seek dir dir);

Desplaza el cursor de escritura el numero de bytes indicadospor desp teniendo en cuenta la direccion especificada por dir:beg, cur, end (principio, posicion actual y final del fichero).

streampos tellp();

Devuelve la posicion actual del flujo de salida o -1 si seproduce un error.

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 38 / 41

Page 39: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

Contenido de la seccion

1 FicherosFicheros de cabeceraDeclaracion de flujosApertura de ficherosDeclaracion de flujo y apertura de un ficheroExistencia de un ficheroCierre de ficherosLectura y escritura en ficheros de textoLectura y escritura en ficheros binariosPosicionamiento en un ficheroOtras funciones de ficheros

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 39 / 41

Page 40: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

FicherosOtras funciones de ficheros

Otras funciones

bool eof() const;

Devuelve true si se ha alcanzado el final del archivo; en casocontrario, devuelve false

bool good() const;

Indica si la operacion de lectura anterior ha tenido exito.

bool fail() const;

Indica que la siguiente operacion de lectura fallara.

bool bad() const;

El flujo de entrada esta corrompido.

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 40 / 41

Page 41: PROGRAMACION ORIENTADA A OBJETOS - UCO€¦ · PROGRAMACION ORIENTADA A OBJETOS Operaciones con cheros en C++ Prof. Dr. Nicol as Luis Fern andez Garc a Departamento de Inform atica

Programacion orientada a objetos C++

Muchas gracias

Universidad de Cordoba: Escuela Politecnica Superior Grado en Ingenierıa Informatica 41 / 41