SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
ENTRADA Y SALIDA POR
ARCHIVOS
Sugerencias y herramientas para crear para crear y presentar diapositivas en
formato panorámico
Contenido
 Flujos
 Puntero FILE
 Apertura de un archivo
 Creación de archivo secuencial
 Archivos binarios en C
 Funciones para acceso aleatorio
 F i                    l     i
 Argumentos de main ()
 Ejercicios
Introducción
 Hasta el momento se han realizado las operaciones básicas
                                           p
 de entrada y salida. La lectura de datos se realiza desde
 un teclado, y la escritura de datos se realiza en el monitor y
 en la impresora de su sistema
 En C existe la biblioteca stdio.h estandarizada por ANSI;
 esta biblioteca proporciona tipos de datos, macros y
 funciones para acceder a los archivos. El manejo de
 archivos en C se hace mediante el concepto de flujo
 (streams) o canal, o también denominado secuencia
Flujo
 Un flujo (stream) es una abstracción que se refiere a un
        j (        )                   q
 flujo o corriente de datos que fluyen entre un origen y
 un destino. Entre el origen y el destino debe existir una
 conexión o canal por la que circulen los datos. La
 apertura de un archivo supone establecer la conexión
 del programa con el dispositivo que contiene al archivo
                                                  archivo,
 por el canal que comunica el archivo con el programa
 van a fluir las secuencias de datos
Puntero FILE
 En el programa el archivo tiene un nombre interno que
 es un puntero a una estructura predefinida (puntero a
 archivo). Esta estructura contiene información sobre el
 archivo,
 archivo tal como la dirección del buffer que utiliza el
                                               utiliza,
 modo de apertura del archivo, el ultimo carácter leído
 del buffer y otros detalles que generalmente el usuario
 no necesita saber. El id ifi d d l tipo d l
           i     b        identificador del i     de las
 estructuras es FILE y esta declarada en el archivo de
 cabecera stdio.h;;
Apertura de un archivo
 Para procesar un archivo en C la primera operación que
 hay que realizar es abrir el archivo. El programa accede a
 los archivos a través de un puntero a la estructura FILE, la
 función de apertura devuelve dicho puntero. La función
               p                          p
 para abrir un archivo es fopen() y el formato de llamada
 es:
   Fopen(nombre_archivo,
   Fopen(nombre archivo modo);
   Nombre = cadena Contiene el identificador externo del archivo
   Modo = cadena Contiene el modo en que se va a tratar el archivo
Ejemplo 13 3
        13.3
 Se desea abrir un archivo de nombre LICENCIA.EST para obtener ciertos datos
 #include <stdio.h>
 #i l d < di h>
 #include <stdlib.h>
 FILE *pf;
 Char [] “C LICENCIA EST”
 Ch nm[]=“C:LICENCIA.EST”;
 Pf=fopen(nm, “r”);
 If (pf==NULL)
 {
 Puts(“Error al abrir el archivo.”);
 Exit (1);
 }
Modos de apertura de un archivo
 Al abrir el archivo fopen() se espera como segundo argumento el modo de
 tratar el archivo. Fundamentalmente se establece si el archivo es de
 lectura, escritura o añadido; y si es de texto o binario
Cont…
Cont
 En estos modos no se ha establecido el tipo de archivo, de
                                              p             ,
 texto o binario. Se utiliza la letra t para modo de texto, la b
 para modo binario como ultimo carácter de la cadena modo.
 Por consiguiente los modos de abrir un archivo de texto:
 “rt”, “wt”, “at”, “r+t”, “w+t”, “a+t”
 Y los modos de abrir un archivo binario:
 “rb”, “wb”, “ab”, “r+b”, “w+b”, “a+b”
  rb wb ab r+b w+b a+b
Ejemplo 13 5
        13.5
 Se dispone de un archivo de
        p                      #include <stdio.h>
 texto, se requiere leerlo     #include <stdlib.h>
                               main () {
 para realizar un cierto       FILE *pf1 , *pf2 ;
 proceso y escribir datos      char org[]="C:LICENCIA.EST";
                               char dst[]="C:RESUMEN.REC" ;
 resultantes en el archivo
                               pf1 = fopen(org, "rt");
 binario                       pf2 = fopen(dst,"wb");
                               if (pf1 == NULL || pf2 == NULL)
                               puts ( "Error al abrir los archivos. ");
                               system("pause");
                                       ("     ")
                               exit (1) ; }
NULL y EOF
 Las funciones de biblioteca que devuelven un puntero
                              q                  p
 (strcpy(), fopen()…) especifican que si no pueden
 realizar la operación devuelven NULL
 Las funciones de librería de E/S de archivos,
 generalmente empiezan por f de file, tienen
 especificado que son d tipo entero d tal f
       ifi d           de i          de l forma que si
                                                     i
 la operación falla devuelven EOF, también devuelven
 EOF para indicar que se ha leído el fin de archivo
Cierre de archivos
 Los archivos en C trabajan con una memoria intermedia, son
 con buffer. La entrada y salida de datos se almacena en
 este buffer, volcándose cuando esta lleno. Siempre que se
 termina de procesar un archivo y siempre que se termine la
               p                         p q
 ejecución del programa los archivos abiertos hay que
 cerrarlos para que entre otras acciones se vuelque el buffer.
 La función fclose(puntero file) cierra el archivo asociado al
              fclose(puntero_file)
 puntero_file.
 int fclose(FILE* pf);
           (      p );
Ejemplo 13 7
        13.7
 Abrir dos archivos de texto, después se cierra cada uno de ellos
 #include <stdio.h>
 FILE *pf1, *pf2 ;
 pf1 = fopen(“C:DATOS.DAT", “a+");
 pf2 = fopen("C:TEMPS.RET",“a+");
 fclose(pf1);
 fclose(pf2);
Creación de un archivo secuencial
 Una vez abierto un archivo para escribir datos hay que
                                p                        yq
 grabar los datos en el archivo. Las funciones de
 entrada y de salida de archivos tienen mucho parecido
 con las ffunciones utilizadas para entrada y salida para
 los flujos stdin (teclado) y stdout (pantalla). Todas tienen
 una versión para archivos que empiezan por la letra f       f,
 así se tiene fprint(), fscanf(), fputs(), fgets(); la mayoría
 de funciones especificas empiezan por f
                   p            p       p
Funciones putc() y fptuc()
 Escriben un carácter en el archivo asociado al puntero a
 FILE. El formato de llamada:
 putc(c, puntero_archivo);
 fputc(c, puntero_archivo);
 f     (              hi )
 Siendo c el carácter a escribir
 Ejemplo 13 1
 Ej      l 13.1
 Se desea crear un archivo salida.pta con los caracteres
 introducidos por el teclado
Funciones getc() y fgetc()
 Estas funciones leen un carácter del archivo asociado al puntero a
 FILE. D
 FILE Devuelven el carácter leído o EOF si es fin de archivo (o si ha
             l     l    á    l íd          i fi d       hi ( i h
 habido un error). El formato de llamada es:
 getc (puntero_archivo);
 fgetc (puntero archivo);
 Ejemplo 13.2
 El archivo salida.pta creado en el problema anterior se d
       hi      lid t       d       l    bl       t i      desea l leer
 para mostrarlo por pantalla y contar las líneas que tiene
Funciones fputs() y fguets()
 Estas funciones escriben/leen una cadena de caracteres
 en el archivo asociado. La función fputs() escribe una
 cadena de caracteres; el formato de llamada es:
                        ;
   fputs(cadena, puntero_archivo);
 La función fguets() lee una cadena de caracteres de un
 archivo. El formato de llamada es:
   fguets (cadena n puntero archivo);
          (cadena, n, puntero_archivo);
Ejercicio 13 1 1
          13.1.1
 El archivo cartas.dat contiene un texto al que se
 desea añadir nuevas líneas, de longitud mínima 30
 caracteres,
 caracteres desde un archivo primero dat
                              primero.dat
Funciones fprintf() y fscanf() ejm13 4 1
                      fscanf(), ejm13.4.1
 Las funciones printf() y scanf() permiten escribir o
 leer variables cualquier tipo de dato estándar, los
 códigos de formato (%d %f ) indican a C la
                          (%d, %f…)
 transformación que debe realizar con la secuencia
 de caracteres La misma funcionalidad tiene
      caracteres.
 fprintf() y fscanf() con los flujos (archivos asociados)
 a que se aplican
Función feof()
 Diversas funciones de lectura de caracteres devuelven
 EOF cuando leen el carácter de fin de archivo. La
 función feof() realiza el cometido anterior, devuelve un
 valor distinto de 0 (true) cuando se lee el carácter de
 fin de archivo, en caso contrario devuelve 0 (false)
   While(!feof(pf))
   Whil (!f f( f))
   {….
   }
Función rewind()
 Una vez que se alcanza el fin de un archivo, nuevas
 llamadas a feof() siguen devolviendo un valor
 distinto de cero Con la función rewind() se sitúa el
             cero.
 puntero del archivo al inicio de este. El formato de
 llamada es:
    Rewind(puntero_archivo)
 Ejemplo 13 10
 Ej    l 13.10
Archivos binarios en C
 Para abrir un archivo en modo binario hay que
 especificar la opción b en el modo. Los archivos
 binarios son secuencias de 0 s y 1 s los modos para
                            0,s 1,s.
 abrir un archivo binario son los mismos que para
 abrir un archivo de texto sustituyendo t por b;
                     texto,
 “rb”, “wb”, “ab”, “r+b”, “w+b”, “a+b”
Función de salida fwrite()
 La función fwrite() escribe un buffer de cualquier
 tipo de dato en un archivo binario. El formato de
 llamada es:
 fwrite(direccion_buffer, tamaño, num_elementos,
 puntero_archivo);
     t        hi )
 Ejemplo 13.12
Función de lectura fread()
 Esta función lee un archivo n bloques de bytes y los
                                   q         y
 almacena en un buffer. El numero de bytes de cada
 bloque (tamaño) se pasa como parámetro, al igual que
 el numero n de bloques y la dirección del buffer (o
                                                 ff
 variable) donde se almacena. El formato de llamada
 es:
 Fread (direccion_buffer, tamano,n,puntero_archivo);
 Ejemplo 13 13
 Ej    l 13.13
Funciones para acceso aleatorio
 Las funciones fseek() y ftell() se usan principalmente para
 acceso directo a archivos en C. estas consideran el archivo
 como una secuencia de bytes; el numero de byte es el índice
 del archivo. Según se va leyendo o escribiendo registros o
                  g             y                    g
 datos en el archivo, el programa mantiene a través de un
 puntero la posición actual. Con la llamada a la función
 ftell() se obtiene el valor de dicha posición
 El formato para llamar a fseek ( ) es:
 fseek(puntero_archivo, desplazdmiento, origen);
        (p               ,    p           , g );
Función ftell
 La posición actual del archivo se puede obtener
      p                                    p
 llamando a la función ftell() y pasando un puntero al
 archivo como argumento. La función devuelve la
 posición como numero de bytes (en entero largo: long
 int) desde el inicio del archivo (byte 0)
 Para ll
 P      llamar a l f ió se pasa como argumento el
                     la función                      l
 puntero a FIL,E.
 long i t ft ll(FILE * f)
 l     int ftell(FILE *pf);
Ejercicios
 Escriba un programa para abrir un archivo de
 caracteres cuyo nombre y acceso se introducen por
 teclado en modo lectura; en el caso de que el resultado
 de la operación sea erróneo abrir el archivo en modo
                      erróneo,
 escritura
 Escribir un programa que compare dos archivos de
              p g        q       p
 texto. El programa ha de mostrar las diferencias entre
 el primer archivo y el segundo, precedidas del numero
 de línea y de columna
Patrón de prueba de pantalla panorámica (16:9)




                               Prueba de la
                                relación de
                                  aspecto
                            (Debe parecer circular)




       4x3

16x9

Más contenido relacionado

La actualidad más candente

De Cero A Python En 45 Min
De Cero A Python En 45 MinDe Cero A Python En 45 Min
De Cero A Python En 45 MinMarco Mansilla
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git RightSven Peters
 
1 cs xii_python_file_handling text n binary file
1 cs xii_python_file_handling text n binary file1 cs xii_python_file_handling text n binary file
1 cs xii_python_file_handling text n binary fileSanjayKumarMahto1
 
Programmazione funzionale e Stream in Java
Programmazione funzionale e Stream in JavaProgrammazione funzionale e Stream in Java
Programmazione funzionale e Stream in JavaCristina Attori
 
C++ Files and Streams
C++ Files and Streams C++ Files and Streams
C++ Files and Streams Ahmed Farag
 
Python Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard WayPython Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard WayUtkarsh Sengar
 
Sequence and Traverse - Part 1
Sequence and Traverse - Part 1Sequence and Traverse - Part 1
Sequence and Traverse - Part 1Philip Schwarz
 
Crear una dll en C++ y llamarla con la interfaz C#
Crear una dll en C++ y llamarla con la interfaz C#Crear una dll en C++ y llamarla con la interfaz C#
Crear una dll en C++ y llamarla con la interfaz C#Ángel Acaymo M. G.
 
EJERCICIOS RESUELTOS DE LAS DEFINICIONES Y PROPIEDADES DE LOS LÍMITES Y DERIV...
EJERCICIOS RESUELTOS DE LAS DEFINICIONES Y PROPIEDADES DE LOS LÍMITES Y DERIV...EJERCICIOS RESUELTOS DE LAS DEFINICIONES Y PROPIEDADES DE LOS LÍMITES Y DERIV...
EJERCICIOS RESUELTOS DE LAS DEFINICIONES Y PROPIEDADES DE LOS LÍMITES Y DERIV...tatu906019
 
virtual function
virtual functionvirtual function
virtual functionVENNILAV6
 

La actualidad más candente (20)

Function in c
Function in cFunction in c
Function in c
 
Funciones
FuncionesFunciones
Funciones
 
File handling in c++
File handling in c++File handling in c++
File handling in c++
 
De Cero A Python En 45 Min
De Cero A Python En 45 MinDe Cero A Python En 45 Min
De Cero A Python En 45 Min
 
Funcion Afin
Funcion AfinFuncion Afin
Funcion Afin
 
Getting Git Right
Getting Git RightGetting Git Right
Getting Git Right
 
1 cs xii_python_file_handling text n binary file
1 cs xii_python_file_handling text n binary file1 cs xii_python_file_handling text n binary file
1 cs xii_python_file_handling text n binary file
 
Programmazione funzionale e Stream in Java
Programmazione funzionale e Stream in JavaProgrammazione funzionale e Stream in Java
Programmazione funzionale e Stream in Java
 
C++ Files and Streams
C++ Files and Streams C++ Files and Streams
C++ Files and Streams
 
File handling-c
File handling-cFile handling-c
File handling-c
 
Files in c++
Files in c++Files in c++
Files in c++
 
Python Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard WayPython Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard Way
 
Manejo de archivos en el lenguaje C
Manejo de archivos en el lenguaje CManejo de archivos en el lenguaje C
Manejo de archivos en el lenguaje C
 
Sequence and Traverse - Part 1
Sequence and Traverse - Part 1Sequence and Traverse - Part 1
Sequence and Traverse - Part 1
 
Crear una dll en C++ y llamarla con la interfaz C#
Crear una dll en C++ y llamarla con la interfaz C#Crear una dll en C++ y llamarla con la interfaz C#
Crear una dll en C++ y llamarla con la interfaz C#
 
Functions in C++
Functions in C++Functions in C++
Functions in C++
 
Chapter 08 data file handling
Chapter 08 data file handlingChapter 08 data file handling
Chapter 08 data file handling
 
EJERCICIOS RESUELTOS DE LAS DEFINICIONES Y PROPIEDADES DE LOS LÍMITES Y DERIV...
EJERCICIOS RESUELTOS DE LAS DEFINICIONES Y PROPIEDADES DE LOS LÍMITES Y DERIV...EJERCICIOS RESUELTOS DE LAS DEFINICIONES Y PROPIEDADES DE LOS LÍMITES Y DERIV...
EJERCICIOS RESUELTOS DE LAS DEFINICIONES Y PROPIEDADES DE LOS LÍMITES Y DERIV...
 
C++ programming function
C++ programming functionC++ programming function
C++ programming function
 
virtual function
virtual functionvirtual function
virtual function
 

Similar a PUNTEROS (APUNTADORES) EN C++

Similar a PUNTEROS (APUNTADORES) EN C++ (20)

Manejo dearchivosc
Manejo dearchivoscManejo dearchivosc
Manejo dearchivosc
 
Archivos c
Archivos cArchivos c
Archivos c
 
Archivos c
Archivos cArchivos c
Archivos c
 
Archivos de datos en C
Archivos de datos en CArchivos de datos en C
Archivos de datos en C
 
Objetivo 01 Archivos de Texto
Objetivo 01 Archivos de TextoObjetivo 01 Archivos de Texto
Objetivo 01 Archivos de Texto
 
Manejo de archivosss
Manejo de archivosssManejo de archivosss
Manejo de archivosss
 
Archivos en c clase unsam
Archivos en c clase unsamArchivos en c clase unsam
Archivos en c clase unsam
 
Gestion de archivos
Gestion de archivosGestion de archivos
Gestion de archivos
 
Tarea pagweb
Tarea pagwebTarea pagweb
Tarea pagweb
 
Tema 10 www.fresymetal.com
Tema 10 www.fresymetal.comTema 10 www.fresymetal.com
Tema 10 www.fresymetal.com
 
ARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE CARCHIVOS DEL LENGUAJE C
ARCHIVOS DEL LENGUAJE C
 
ARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE CARCHIVOS LENGUAJE C
ARCHIVOS LENGUAJE C
 
Archivos en C
Archivos en CArchivos en C
Archivos en C
 
16 Archivos
16 Archivos16 Archivos
16 Archivos
 
Manejo de archivos en c++
Manejo de archivos en c++Manejo de archivos en c++
Manejo de archivos en c++
 
Utp pti_s11_archivos
 Utp pti_s11_archivos Utp pti_s11_archivos
Utp pti_s11_archivos
 
Arreglos Turbo C
Arreglos Turbo CArreglos Turbo C
Arreglos Turbo C
 
Fichero c y c++
Fichero c y c++Fichero c y c++
Fichero c y c++
 
Manejo_archivos.ppt
Manejo_archivos.pptManejo_archivos.ppt
Manejo_archivos.ppt
 
Fichc
FichcFichc
Fichc
 

Más de die_dex

Appendix a introduction tonthe microprocessor and the microcomputer
Appendix a introduction tonthe microprocessor and the microcomputerAppendix a introduction tonthe microprocessor and the microcomputer
Appendix a introduction tonthe microprocessor and the microcomputerdie_dex
 
Comercio internacional
Comercio internacionalComercio internacional
Comercio internacionaldie_dex
 
Analisis del comercio exterior en la ultima década
Analisis del comercio exterior en la ultima décadaAnalisis del comercio exterior en la ultima década
Analisis del comercio exterior en la ultima décadadie_dex
 
Micro-nanosystems for electrical metrology and precision instrumentation
Micro-nanosystems for electrical metrology and precision instrumentationMicro-nanosystems for electrical metrology and precision instrumentation
Micro-nanosystems for electrical metrology and precision instrumentationdie_dex
 
Bolometric Applications at Room Temperature
Bolometric Applications at Room TemperatureBolometric Applications at Room Temperature
Bolometric Applications at Room Temperaturedie_dex
 
Proposed changes to the definition of the ampere and the kilogram and their i...
Proposed changes to the definition of the ampere and the kilogram and their i...Proposed changes to the definition of the ampere and the kilogram and their i...
Proposed changes to the definition of the ampere and the kilogram and their i...die_dex
 
Analog to Digital Converters Testing
Analog to Digital Converters TestingAnalog to Digital Converters Testing
Analog to Digital Converters Testingdie_dex
 
Towards Uniformity of DC Voltage Metrology within SIM
Towards Uniformity of DC Voltage Metrology within SIMTowards Uniformity of DC Voltage Metrology within SIM
Towards Uniformity of DC Voltage Metrology within SIMdie_dex
 
FUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADOR
FUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADORFUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADOR
FUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADORdie_dex
 
Urgencia hipertensiva
Urgencia hipertensivaUrgencia hipertensiva
Urgencia hipertensivadie_dex
 
Guia para la_atencion_del_parto_normal_en_mcf
Guia para la_atencion_del_parto_normal_en_mcfGuia para la_atencion_del_parto_normal_en_mcf
Guia para la_atencion_del_parto_normal_en_mcfdie_dex
 
Equipo humano y materiales para recepción de recién
Equipo humano y materiales para recepción de reciénEquipo humano y materiales para recepción de recién
Equipo humano y materiales para recepción de reciéndie_dex
 
Crisis hipertensivas
Crisis hipertensivasCrisis hipertensivas
Crisis hipertensivasdie_dex
 
GENERACIÓN ELÉCTRICA
GENERACIÓN ELÉCTRICAGENERACIÓN ELÉCTRICA
GENERACIÓN ELÉCTRICAdie_dex
 
FORMATO IEEE
FORMATO IEEEFORMATO IEEE
FORMATO IEEEdie_dex
 
HISTORIA DE LAS TELECOMUNICACIONES
HISTORIA DE LAS TELECOMUNICACIONESHISTORIA DE LAS TELECOMUNICACIONES
HISTORIA DE LAS TELECOMUNICACIONESdie_dex
 
Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01
Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01
Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01die_dex
 
Metrologia
MetrologiaMetrologia
Metrologiadie_dex
 
Mediciones e instrumentacion_industrial
Mediciones e instrumentacion_industrialMediciones e instrumentacion_industrial
Mediciones e instrumentacion_industrialdie_dex
 

Más de die_dex (20)

Appendix a introduction tonthe microprocessor and the microcomputer
Appendix a introduction tonthe microprocessor and the microcomputerAppendix a introduction tonthe microprocessor and the microcomputer
Appendix a introduction tonthe microprocessor and the microcomputer
 
Comercio internacional
Comercio internacionalComercio internacional
Comercio internacional
 
Analisis del comercio exterior en la ultima década
Analisis del comercio exterior en la ultima décadaAnalisis del comercio exterior en la ultima década
Analisis del comercio exterior en la ultima década
 
Micro-nanosystems for electrical metrology and precision instrumentation
Micro-nanosystems for electrical metrology and precision instrumentationMicro-nanosystems for electrical metrology and precision instrumentation
Micro-nanosystems for electrical metrology and precision instrumentation
 
Bolometric Applications at Room Temperature
Bolometric Applications at Room TemperatureBolometric Applications at Room Temperature
Bolometric Applications at Room Temperature
 
Proposed changes to the definition of the ampere and the kilogram and their i...
Proposed changes to the definition of the ampere and the kilogram and their i...Proposed changes to the definition of the ampere and the kilogram and their i...
Proposed changes to the definition of the ampere and the kilogram and their i...
 
Analog to Digital Converters Testing
Analog to Digital Converters TestingAnalog to Digital Converters Testing
Analog to Digital Converters Testing
 
Towards Uniformity of DC Voltage Metrology within SIM
Towards Uniformity of DC Voltage Metrology within SIMTowards Uniformity of DC Voltage Metrology within SIM
Towards Uniformity of DC Voltage Metrology within SIM
 
Web 2.0
Web 2.0Web 2.0
Web 2.0
 
FUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADOR
FUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADORFUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADOR
FUENTES DE ENERGÍA RENOVABLE EN EL SUR DE ECUADOR
 
Urgencia hipertensiva
Urgencia hipertensivaUrgencia hipertensiva
Urgencia hipertensiva
 
Guia para la_atencion_del_parto_normal_en_mcf
Guia para la_atencion_del_parto_normal_en_mcfGuia para la_atencion_del_parto_normal_en_mcf
Guia para la_atencion_del_parto_normal_en_mcf
 
Equipo humano y materiales para recepción de recién
Equipo humano y materiales para recepción de reciénEquipo humano y materiales para recepción de recién
Equipo humano y materiales para recepción de recién
 
Crisis hipertensivas
Crisis hipertensivasCrisis hipertensivas
Crisis hipertensivas
 
GENERACIÓN ELÉCTRICA
GENERACIÓN ELÉCTRICAGENERACIÓN ELÉCTRICA
GENERACIÓN ELÉCTRICA
 
FORMATO IEEE
FORMATO IEEEFORMATO IEEE
FORMATO IEEE
 
HISTORIA DE LAS TELECOMUNICACIONES
HISTORIA DE LAS TELECOMUNICACIONESHISTORIA DE LAS TELECOMUNICACIONES
HISTORIA DE LAS TELECOMUNICACIONES
 
Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01
Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01
Lojapioneradelageneracinelectricaenecuador 120118235501-phpapp01
 
Metrologia
MetrologiaMetrologia
Metrologia
 
Mediciones e instrumentacion_industrial
Mediciones e instrumentacion_industrialMediciones e instrumentacion_industrial
Mediciones e instrumentacion_industrial
 

PUNTEROS (APUNTADORES) EN C++

  • 1. ENTRADA Y SALIDA POR ARCHIVOS Sugerencias y herramientas para crear para crear y presentar diapositivas en formato panorámico
  • 2. Contenido Flujos Puntero FILE Apertura de un archivo Creación de archivo secuencial Archivos binarios en C Funciones para acceso aleatorio F i l i Argumentos de main () Ejercicios
  • 3. Introducción Hasta el momento se han realizado las operaciones básicas p de entrada y salida. La lectura de datos se realiza desde un teclado, y la escritura de datos se realiza en el monitor y en la impresora de su sistema En C existe la biblioteca stdio.h estandarizada por ANSI; esta biblioteca proporciona tipos de datos, macros y funciones para acceder a los archivos. El manejo de archivos en C se hace mediante el concepto de flujo (streams) o canal, o también denominado secuencia
  • 4. Flujo Un flujo (stream) es una abstracción que se refiere a un j ( ) q flujo o corriente de datos que fluyen entre un origen y un destino. Entre el origen y el destino debe existir una conexión o canal por la que circulen los datos. La apertura de un archivo supone establecer la conexión del programa con el dispositivo que contiene al archivo archivo, por el canal que comunica el archivo con el programa van a fluir las secuencias de datos
  • 5. Puntero FILE En el programa el archivo tiene un nombre interno que es un puntero a una estructura predefinida (puntero a archivo). Esta estructura contiene información sobre el archivo, archivo tal como la dirección del buffer que utiliza el utiliza, modo de apertura del archivo, el ultimo carácter leído del buffer y otros detalles que generalmente el usuario no necesita saber. El id ifi d d l tipo d l i b identificador del i de las estructuras es FILE y esta declarada en el archivo de cabecera stdio.h;;
  • 6. Apertura de un archivo Para procesar un archivo en C la primera operación que hay que realizar es abrir el archivo. El programa accede a los archivos a través de un puntero a la estructura FILE, la función de apertura devuelve dicho puntero. La función p p para abrir un archivo es fopen() y el formato de llamada es: Fopen(nombre_archivo, Fopen(nombre archivo modo); Nombre = cadena Contiene el identificador externo del archivo Modo = cadena Contiene el modo en que se va a tratar el archivo
  • 7. Ejemplo 13 3 13.3 Se desea abrir un archivo de nombre LICENCIA.EST para obtener ciertos datos #include <stdio.h> #i l d < di h> #include <stdlib.h> FILE *pf; Char [] “C LICENCIA EST” Ch nm[]=“C:LICENCIA.EST”; Pf=fopen(nm, “r”); If (pf==NULL) { Puts(“Error al abrir el archivo.”); Exit (1); }
  • 8. Modos de apertura de un archivo Al abrir el archivo fopen() se espera como segundo argumento el modo de tratar el archivo. Fundamentalmente se establece si el archivo es de lectura, escritura o añadido; y si es de texto o binario
  • 9. Cont… Cont En estos modos no se ha establecido el tipo de archivo, de p , texto o binario. Se utiliza la letra t para modo de texto, la b para modo binario como ultimo carácter de la cadena modo. Por consiguiente los modos de abrir un archivo de texto: “rt”, “wt”, “at”, “r+t”, “w+t”, “a+t” Y los modos de abrir un archivo binario: “rb”, “wb”, “ab”, “r+b”, “w+b”, “a+b” rb wb ab r+b w+b a+b
  • 10. Ejemplo 13 5 13.5 Se dispone de un archivo de p #include <stdio.h> texto, se requiere leerlo #include <stdlib.h> main () { para realizar un cierto FILE *pf1 , *pf2 ; proceso y escribir datos char org[]="C:LICENCIA.EST"; char dst[]="C:RESUMEN.REC" ; resultantes en el archivo pf1 = fopen(org, "rt"); binario pf2 = fopen(dst,"wb"); if (pf1 == NULL || pf2 == NULL) puts ( "Error al abrir los archivos. "); system("pause"); (" ") exit (1) ; }
  • 11. NULL y EOF Las funciones de biblioteca que devuelven un puntero q p (strcpy(), fopen()…) especifican que si no pueden realizar la operación devuelven NULL Las funciones de librería de E/S de archivos, generalmente empiezan por f de file, tienen especificado que son d tipo entero d tal f ifi d de i de l forma que si i la operación falla devuelven EOF, también devuelven EOF para indicar que se ha leído el fin de archivo
  • 12. Cierre de archivos Los archivos en C trabajan con una memoria intermedia, son con buffer. La entrada y salida de datos se almacena en este buffer, volcándose cuando esta lleno. Siempre que se termina de procesar un archivo y siempre que se termine la p p q ejecución del programa los archivos abiertos hay que cerrarlos para que entre otras acciones se vuelque el buffer. La función fclose(puntero file) cierra el archivo asociado al fclose(puntero_file) puntero_file. int fclose(FILE* pf); ( p );
  • 13. Ejemplo 13 7 13.7 Abrir dos archivos de texto, después se cierra cada uno de ellos #include <stdio.h> FILE *pf1, *pf2 ; pf1 = fopen(“C:DATOS.DAT", “a+"); pf2 = fopen("C:TEMPS.RET",“a+"); fclose(pf1); fclose(pf2);
  • 14. Creación de un archivo secuencial Una vez abierto un archivo para escribir datos hay que p yq grabar los datos en el archivo. Las funciones de entrada y de salida de archivos tienen mucho parecido con las ffunciones utilizadas para entrada y salida para los flujos stdin (teclado) y stdout (pantalla). Todas tienen una versión para archivos que empiezan por la letra f f, así se tiene fprint(), fscanf(), fputs(), fgets(); la mayoría de funciones especificas empiezan por f p p p
  • 15. Funciones putc() y fptuc() Escriben un carácter en el archivo asociado al puntero a FILE. El formato de llamada: putc(c, puntero_archivo); fputc(c, puntero_archivo); f ( hi ) Siendo c el carácter a escribir Ejemplo 13 1 Ej l 13.1 Se desea crear un archivo salida.pta con los caracteres introducidos por el teclado
  • 16. Funciones getc() y fgetc() Estas funciones leen un carácter del archivo asociado al puntero a FILE. D FILE Devuelven el carácter leído o EOF si es fin de archivo (o si ha l l á l íd i fi d hi ( i h habido un error). El formato de llamada es: getc (puntero_archivo); fgetc (puntero archivo); Ejemplo 13.2 El archivo salida.pta creado en el problema anterior se d hi lid t d l bl t i desea l leer para mostrarlo por pantalla y contar las líneas que tiene
  • 17. Funciones fputs() y fguets() Estas funciones escriben/leen una cadena de caracteres en el archivo asociado. La función fputs() escribe una cadena de caracteres; el formato de llamada es: ; fputs(cadena, puntero_archivo); La función fguets() lee una cadena de caracteres de un archivo. El formato de llamada es: fguets (cadena n puntero archivo); (cadena, n, puntero_archivo);
  • 18. Ejercicio 13 1 1 13.1.1 El archivo cartas.dat contiene un texto al que se desea añadir nuevas líneas, de longitud mínima 30 caracteres, caracteres desde un archivo primero dat primero.dat
  • 19. Funciones fprintf() y fscanf() ejm13 4 1 fscanf(), ejm13.4.1 Las funciones printf() y scanf() permiten escribir o leer variables cualquier tipo de dato estándar, los códigos de formato (%d %f ) indican a C la (%d, %f…) transformación que debe realizar con la secuencia de caracteres La misma funcionalidad tiene caracteres. fprintf() y fscanf() con los flujos (archivos asociados) a que se aplican
  • 20. Función feof() Diversas funciones de lectura de caracteres devuelven EOF cuando leen el carácter de fin de archivo. La función feof() realiza el cometido anterior, devuelve un valor distinto de 0 (true) cuando se lee el carácter de fin de archivo, en caso contrario devuelve 0 (false) While(!feof(pf)) Whil (!f f( f)) {…. }
  • 21. Función rewind() Una vez que se alcanza el fin de un archivo, nuevas llamadas a feof() siguen devolviendo un valor distinto de cero Con la función rewind() se sitúa el cero. puntero del archivo al inicio de este. El formato de llamada es: Rewind(puntero_archivo) Ejemplo 13 10 Ej l 13.10
  • 22. Archivos binarios en C Para abrir un archivo en modo binario hay que especificar la opción b en el modo. Los archivos binarios son secuencias de 0 s y 1 s los modos para 0,s 1,s. abrir un archivo binario son los mismos que para abrir un archivo de texto sustituyendo t por b; texto, “rb”, “wb”, “ab”, “r+b”, “w+b”, “a+b”
  • 23. Función de salida fwrite() La función fwrite() escribe un buffer de cualquier tipo de dato en un archivo binario. El formato de llamada es: fwrite(direccion_buffer, tamaño, num_elementos, puntero_archivo); t hi ) Ejemplo 13.12
  • 24. Función de lectura fread() Esta función lee un archivo n bloques de bytes y los q y almacena en un buffer. El numero de bytes de cada bloque (tamaño) se pasa como parámetro, al igual que el numero n de bloques y la dirección del buffer (o ff variable) donde se almacena. El formato de llamada es: Fread (direccion_buffer, tamano,n,puntero_archivo); Ejemplo 13 13 Ej l 13.13
  • 25. Funciones para acceso aleatorio Las funciones fseek() y ftell() se usan principalmente para acceso directo a archivos en C. estas consideran el archivo como una secuencia de bytes; el numero de byte es el índice del archivo. Según se va leyendo o escribiendo registros o g y g datos en el archivo, el programa mantiene a través de un puntero la posición actual. Con la llamada a la función ftell() se obtiene el valor de dicha posición El formato para llamar a fseek ( ) es: fseek(puntero_archivo, desplazdmiento, origen); (p , p , g );
  • 26. Función ftell La posición actual del archivo se puede obtener p p llamando a la función ftell() y pasando un puntero al archivo como argumento. La función devuelve la posición como numero de bytes (en entero largo: long int) desde el inicio del archivo (byte 0) Para ll P llamar a l f ió se pasa como argumento el la función l puntero a FIL,E. long i t ft ll(FILE * f) l int ftell(FILE *pf);
  • 27. Ejercicios Escriba un programa para abrir un archivo de caracteres cuyo nombre y acceso se introducen por teclado en modo lectura; en el caso de que el resultado de la operación sea erróneo abrir el archivo en modo erróneo, escritura Escribir un programa que compare dos archivos de p g q p texto. El programa ha de mostrar las diferencias entre el primer archivo y el segundo, precedidas del numero de línea y de columna
  • 28. Patrón de prueba de pantalla panorámica (16:9) Prueba de la relación de aspecto (Debe parecer circular) 4x3 16x9