binarios c++

Upload: patriciaisabel

Post on 07-Jul-2018

249 views

Category:

Documents


0 download

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.