Tema 3: Ficheros en C++

Tema 3 Ficheros de texto Definición Declaración Apertura y cierre Tema 3: Ficheros en C++ Lectura Escritura Ejercicios Programación 2 Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios Errores Curso 2013-2014 Índice Tema 3 1 Ficheros de texto Definición Declaración Apertura y cierre Lectura de un fichero de texto (1/2) Escritura de un fichero de texto Ejercicios 2 Ficheros binarios Definición Declaración, apertura y cierre Lectura de un fichero binario Escritura de un fichero binario Ejercicios 3 Control de errores de lectura/escritura Ficheros de texto Definición Declaración Apertura y cierre Lectura Escritura Ejercicios Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios Errores ¿Qué es un fichero de texto? Tema 3 Ficheros de texto Definición Declaración Apertura y cierre Lectura Escritura Ejercicios Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios Errores También se le denomina fichero con formato Es un fichero que contiene solamente caracteres imprimibles ¿Qué es un carácter imprimible? Aquel cuyo código ASCII es mayor o igual que 32. ¿Qué es el código ASCII? Es un código que asigna a cada carácter un número (los ordenadores solamente almacenan números). Ejemplos de ficheros de texto: un programa en C++, una página web (HTML), un makefile, . . . Declaración de variables de tipo fichero Tema 3 Ficheros de texto Definición Declaración Apertura y cierre Lectura Escritura Ejercicios Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios Errores Hay que poner #include : ifstream fich_leer; (sólo para leer) ofstream fich_escribir; (sólo para escribir) fstream fich_leer_y_escribir; (raro en ficheros de texto) Apertura y cierre (1/2) Tema 3 Ficheros de texto Definición Declaración Modos de apertura: lectura, escritura, lectura/escritura, añadir al final En C++ se abren los ficheros con “open”, p.ej.: Apertura y cierre Lectura Escritura Ejercicios Ficheros binarios Definición Declaración, apertura y cierre const char nombre[]="mifichero.txt"; fichero.open(nombre,ios::in); Si el nombre del fichero es un string debemos convertirlo con la función c_str(). Lectura Escritura Ejercicios Errores Modos de apertura en C++: lectura escritura lectura/escritura añadir al final ios::in ios::out ios::in | ios::out ios::out | ios::app (fstream) Apertura y cierre (2/2) Tema 3 Forma abreviada: Ficheros de texto Definición Declaración ifstream fl("ifi.txt"); // por defecto, ios::in ofstream fe("ofi.txt"); // ios::out Apertura y cierre Lectura Escritura Ejercicios Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios ¿Cómo comprobar si se ha abierto el fichero? ¿Cómo cerrarlo? if (fichero.is_open()) { // ya se puede leer ... Errores fichero.close(); // cerrar el fichero } else // error de apertura Detección del fin de fichero Tema 3 Se utiliza el método “eof”: Ficheros de texto Definición Declaración Apertura y cierre ifstream fi; ... while (!fi.eof() ...) Lectura Escritura Ejercicios Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios Errores ¿Cómo funciona? Cuando se intenta leer un dato (carácter, número, etc) que ya no está en el fichero el método devuelve “true” OJO: después de haber leido el último dato válido sigue devolviendo “false”, luego ... Es necesario hacer una lectura “extra” (que puede devolver datos no válidos que deben ignorarse) para provocar la detección del final del fichero Lectura por líneas (1/2) Tema 3 Ficheros de texto Definición Declaración Apertura y cierre Lectura Escritura Ejercicios Ficheros binarios ... if (fi.is_open()) { getline(fi,s); // ’s’ es de tipo string // fi.getline(cad,tCAD); // ’cad’ es ’char []’ while (!fi.eof()) { // hacer algo con ’s’ Definición Declaración, apertura y cierre getline(fi,s); Lectura } Escritura Ejercicios fi.close(); Errores } Lectura por líneas (2/2) Tema 3 ¿Y si la última línea del fichero no tiene “\n”? se pierde y no se procesa!! Ficheros de texto Definición Declaración Apertura y cierre Lectura Escritura Ejercicio

62 downloads 149 Views 401KB Size

Recommend Stories


Tema 3. Estructuras de control en C++
Tema 3 Estructuras de control en C++ 1 E.T.S.I. Telecomunicaci´ on Laboratorio de Programaci´ on 2 2 ´Indice general 3.1. Bloques de sentencia

TEMA 3. ECOLOCALIZACIÓN EN MURCIÉLAGOS
TEMA 3. ECOLOCALIZACIÓN EN MURCIÉLAGOS 1 Neuroetología Filogenia de los murciélagos Orden Qirópteros (murciélagos) – Megaquirópteros (frugívoros) 1

Gestión básica de ficheros
Tema 1 Gesti´ on b´ asica de ficheros 1.1. Introducci´ on Hasta ahora, los programas que se han hecho en la asignatura tomaban los datos, generalmen

Story Transcript

Tema 3

Ficheros de texto Definición Declaración Apertura y cierre

Tema 3: Ficheros en C++

Lectura Escritura Ejercicios

Programación 2

Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios

Errores

Curso 2013-2014

Índice Tema 3

1

Ficheros de texto Definición Declaración Apertura y cierre Lectura de un fichero de texto (1/2) Escritura de un fichero de texto Ejercicios

2

Ficheros binarios Definición Declaración, apertura y cierre Lectura de un fichero binario Escritura de un fichero binario Ejercicios

3

Control de errores de lectura/escritura

Ficheros de texto Definición Declaración Apertura y cierre Lectura Escritura Ejercicios

Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios

Errores

¿Qué es un fichero de texto? Tema 3

Ficheros de texto Definición Declaración Apertura y cierre Lectura Escritura Ejercicios

Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios

Errores

También se le denomina fichero con formato Es un fichero que contiene solamente caracteres imprimibles ¿Qué es un carácter imprimible? Aquel cuyo código ASCII es mayor o igual que 32. ¿Qué es el código ASCII? Es un código que asigna a cada carácter un número (los ordenadores solamente almacenan números). Ejemplos de ficheros de texto: un programa en C++, una página web (HTML), un makefile, . . .

Declaración de variables de tipo fichero Tema 3

Ficheros de texto Definición Declaración Apertura y cierre Lectura Escritura Ejercicios

Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios

Errores

Hay que poner #include : ifstream fich_leer; (sólo para leer) ofstream fich_escribir; (sólo para escribir) fstream fich_leer_y_escribir; (raro en ficheros de texto)

Apertura y cierre (1/2) Tema 3

Ficheros de texto Definición Declaración

Modos de apertura: lectura, escritura, lectura/escritura, añadir al final En C++ se abren los ficheros con “open”, p.ej.:

Apertura y cierre Lectura Escritura Ejercicios

Ficheros binarios Definición Declaración, apertura y cierre

const char nombre[]="mifichero.txt"; fichero.open(nombre,ios::in);

Si el nombre del fichero es un string debemos convertirlo con la función c_str().

Lectura Escritura Ejercicios

Errores

Modos de apertura en C++: lectura escritura lectura/escritura añadir al final

ios::in ios::out ios::in | ios::out ios::out | ios::app

(fstream)

Apertura y cierre (2/2) Tema 3

Forma abreviada: Ficheros de texto Definición Declaración

ifstream fl("ifi.txt"); // por defecto, ios::in ofstream fe("ofi.txt"); // ios::out

Apertura y cierre Lectura Escritura Ejercicios

Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios

¿Cómo comprobar si se ha abierto el fichero? ¿Cómo cerrarlo? if (fichero.is_open()) { // ya se puede leer ...

Errores

fichero.close(); // cerrar el fichero } else // error de apertura

Detección del fin de fichero Tema 3

Se utiliza el método “eof”: Ficheros de texto Definición Declaración Apertura y cierre

ifstream fi; ... while (!fi.eof() ...)

Lectura Escritura Ejercicios

Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios

Errores

¿Cómo funciona? Cuando se intenta leer un dato (carácter, número, etc) que ya no está en el fichero el método devuelve “true” OJO: después de haber leido el último dato válido sigue devolviendo “false”, luego ... Es necesario hacer una lectura “extra” (que puede devolver datos no válidos que deben ignorarse) para provocar la detección del final del fichero

Lectura por líneas (1/2) Tema 3

Ficheros de texto Definición Declaración Apertura y cierre Lectura Escritura Ejercicios

Ficheros binarios

... if (fi.is_open()) { getline(fi,s); // ’s’ es de tipo string // fi.getline(cad,tCAD); // ’cad’ es ’char []’ while (!fi.eof()) { // hacer algo con ’s’

Definición Declaración, apertura y cierre

getline(fi,s);

Lectura

}

Escritura Ejercicios

fi.close();

Errores

}

Lectura por líneas (2/2) Tema 3

¿Y si la última línea del fichero no tiene “\n”? se pierde y no se procesa!! Ficheros de texto Definición Declaración Apertura y cierre Lectura Escritura Ejercicios

Ficheros binarios Definición Declaración, apertura y cierre

... if (fi.is_open()) { s=""; getline(fi,s); while (!fi.eof() || s.length()!=0) { // hacer algo con ’s’

Lectura

s=""; // inicializar ’s’ getline(fi,s);

Escritura Ejercicios

}

Errores

fi.close(); }

Lectura carácter a carácter Tema 3

Ficheros de texto Definición Declaración Apertura y cierre Lectura Escritura Ejercicios

Ficheros binarios

... if (fi.is_open()) { c = fi.get(); while (!fi.eof()) { // hacer algo con ’c’

Definición

c = fi.get();

Declaración, apertura y cierre

}

Lectura Escritura Ejercicios

Errores

fi.close(); }

Lectura de más de una variable Tema 3

Los ficheros son “stream”, funcionan como cin y cout Ficheros de texto Definición Declaración Apertura y cierre

#include ... ifstream fi; int numentero; double numreal;

Lectura Escritura Ejercicios

Ficheros binarios Definición Declaración, apertura y cierre Lectura Escritura Ejercicios

Errores

fi.open("mifichero.txt",ios::in); if (fi.is_open()) { fi >> numentero; while (!fi.eof()) { fi >> numreal; // hacer algo con ’numentero’ y ’numreal’ fi >> numentero; // lectura "extra" ? } fi.close(); }

Escritura de un fichero de texto Tema 3

Ficheros de texto Definición Declaración

ofstream fo;

Apertura y cierre Lectura Escritura Ejercicios

Ficheros binarios Definición

fo.open("mifichero.txt",ios::out); if (fo.is_open()) { fo

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.