binarios c++
TRANSCRIPT
-
8/18/2019 binarios c++
1/16
Raquel MalcaClase 13-14
-
8/18/2019 binarios c++
2/16
1. Introducción.
2. Manipulación de ficheros.
3. Organización de archios.
4. !ipo de al"acena"iento.
#. $i%lioteca de flu&os.
'. Operaciones asociadas a archios(
)%rir *ichero+ Cerrar *ichero+
,ectura escritura+
*unciones de control.
-
8/18/2019 binarios c++
3/16
Manipulación de Ficherosn C//+ se utilizan strea"s 0flu&os para gestionar la lectura escritura de datos. a conoce"os dos flu&os estndar( cin cout.
l %uffer es un rea de "e"oria situada en la R)M asignada
al progra"a que a%re el archio.
n definitia abrir un fichero significa definir un stream.icho strea" per"ite la transferencia de datos entre elprogra"a el fichero en disco.
stream $uffer *IC5RO
RAM
-
8/18/2019 binarios c++
4/16
Manipulación de Ficheros!oda transferencia de datos entre el progra"a el fichero endisco se realiza a tra6s del %uffer. l %uffer est para dareficiencia.
,as operaciones de 78 son "s eficientes(• l acceso a la "e"oria R)M consu"e "enos tie"po que el acceso
a un dispositio f9sico.
• l %uffer hace que el n:"ero de accesos al fichero f9sico sea"enor.
l uso del %uffer per"ite realizar operaciones de entrada salidade for"a "s eficiente.
-
8/18/2019 binarios c++
5/16
Organización de archivosArchivos de acceso secuencial: los datos se al"acenan defor"a consecutia no es posi%le leer un registrodirecta"ente+ es decir para leer el registro n ha que leerlos n-1 registros anteriores.
Archivos de acceso aleatorio: se puede acceder a unregistro concreto sin necesidad de leer todos los anteriores.
Tipo de almacenamiento en Archivos
Archivos de texto: ,os datos se al"acenan usando código)8CII por tanto+ pueden ser procesados por cualquier editorde te;to.
Archivos binarios: ,os datos se al"acenan en %inario.
-
8/18/2019 binarios c++
6/16
-
8/18/2019 binarios c++
7/16
Abrir el archivo para a%adir datos al final
8i se desea a>adir en lugar de ree"plazar los datos de unarchio e;istente+ se de%e definir un flu&o de salida en "odoappend .
,os datos adicionales escritos en el archio+ se a>aden ensu e;tre"o final.
8i el archio no e;iste+ se crear.
5e"os definido el flu&o de salida fich&tres en "odo a>adir.
!include "fstream$'ofstream fich?tres 0@a(AA"isdatos.t;tB+ ios?%ase((appD
ofstream Eflu&o?salidaF 0@ruta?de?localizaciónB+ ios?%ase((app
-
8/18/2019 binarios c++
8/16
Advertencia
)ntes de seguir adelante+ es aconse&a%le co"pro%ar si elfichero se ha a%ierto correcta"ente+ tanto si es paralectura+ escritura.
Gna ez definidos los flu&os con los que a a tra%a&ar nuestroprogra"a+ se pueden utilizar los operadores de inserción 0EE e;tracción 0FF los "6todos a conocidos de lectura dedatos istos para los flu&os cin cout.
if (fichero&uno) cout "" *Apertura con +xito,-else cout "" *.o se ha podido abrir el fichero,-
-
8/18/2019 binarios c++
9/16
/ierre de archivos
Cuando el progra"a ha ter"inado de "anipular el fichero+6ste de%e cerrarse. =ara cerrar un archio+ %asta cone&ecutar la función close so%re el flu&o asociado al fichero.
!include Efstrea".hFDifstrea" leer?fich0@a(AA"isdatos.t;tB
ofstrea" fich?10@a(AA"isdatos.t;tB+ ios?%ase((outofstrea" fich?dos0@a(AA"isdatos.t;tB+ ios?%ase((appD.leer?fich.close0fich?1.close0fich?dos.close0
D
8i un fichero no se cierra+ escerrado auto"tica"ente
cuando ter"ina el progra"a
Eno"%re?flu&oF.close0
-
8/18/2019 binarios c++
10/16
C// trata la entrada salida co"o flu&os. ,aentrad a salida puede ser por consola o"ediante flu&o de archios.
C// per"ite "anipuladores personalizadospara "ane&ar entrada salida. ;isten dos()quellos que operan so%re "anipuladores de
entrada +
)quellos que operan so%re "anipuladores desalida.
stos "anipuladores pueden o no reci%irpar"etros.
-
8/18/2019 binarios c++
11/16
=ara una función "anipuladora de salida sinpar"etros+ se tiene el siguiente for"ato( ostrea" Hidentifica?"anipulador0ostrea" H flu&o
77cuerpo de la funcion "anipuladoraJ identifica?"anipulador( no"%re del "anipulador.
-
8/18/2019 binarios c++
12/16
&e"plo(
Crear un "anipulador de entrada lla"adoleerpassKord0 que e"ite un sonido luego
solicita un passKord.
-
8/18/2019 binarios c++
13/16
&e"plo(
Crear un "anipulador de entrada lla"adoleerpassKord0 que e"ite un sonido luego
solicita un passKord.
-
8/18/2019 binarios c++
14/16
0scritura de archivos de texto
scri%e un carcter en el flu&o de salida.
"fluo&salida$#put ( char void
!include Efstrea".hFDifstrea" leer?fich0@a(AAdatos1.t;tBofstrea" Krite?fich0@a(AAdatos2.t;tBDleer?fich.get0carleer?fich.getline0no"%re+2L
Krite?fich.put0carD.leer?fich.close0Krite?fich.close0D
,ee un carcter del flu&ode entrada
scri%e un carcter delflu&o de salida
-
8/18/2019 binarios c++
15/16
Funciones de control de fluos de archivos
,a función eof + deuele un alor distinto de cero si el flu&ode entrada ha alcanzado el final del fichero
"fluo&entrada$#eof ( int
!include Efstrea".hFDifstrea" leer?fich0@a(AAdatos.t;tBDKhile0 leer?fich.eof0 leer?fich.getline0no"%re+2L
linea // JDleer?fich.close0D
Mientras no se final defichero
-
8/18/2019 binarios c++
16/16
Referencias(
Mg. dgar Ruiz ,iza"a.