Вы находитесь на странице: 1из 82

Programacin

Clase 22. Archivos


Prof. Gonzalo Mller
gmullerb@mail.com

Facultad de Ingeniera Universidad Central de Venezuela

Clase Anterior
Cadenas de Caracteres. Declaracin de una variable string. String en C. Lectura y Escritura de un string en C. scanf, printf. gets. String como parmetro. Arreglos de string. Estructuras con string.
Programacin Prof. Gonzalo Mller Clase 22 GM - 2

Puntero
Es una variable que contiene la direccin de memoria de otra variable
Variable Puntero a A Identificador

A 101 31

Direccin

B 31 93

Identificador

Direccin

Programacin Prof. Gonzalo Mller Clase 22 GM - 3

Puntero
Es una variable que contiene la direccin de memoria de otra variable
Variable Puntero a A Identificador

A 101 31

Direccin

B 31 93

Identificador

Direccin

Programacin Prof. Gonzalo Mller Clase 22 GM - 4

Puntero
Declaracin: tipo *variable; tipo *variable1, *variable2, ; tipo indicada el tipo de variable a la que se esta apuntando. Un puntero a tipo char solo puede apuntar a variables tipos char, uno unsigned char solo puede apuntar a variables tipos unsigned char y as sucesivamente.
Programacin Prof. Gonzalo Mller Clase 22 GM - 5

Puntero
Ejemplo:
unsigned char A, *B; unsigned short *C; A = 101; B = &A; printf(%u\n, A); printf(%u, &A); printf(%u, B); C = &A; Error
Programacin Prof. Gonzalo Mller Clase 22 GM - 6

Escribe 101 en la pantalla Escribe 31 en la pantalla Escribe 31 en la pantalla

Archivo
Coleccin de informacin binaria, 0s y 1s, que contiene datos o programas. Los cuales se encuentra almacenados en unidad de almacenamiento externo (disco duros, CD, DVD, etc.).
0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0

Programacin Prof. Gonzalo Mller Clase 22 GM - 7

Archivo
Coleccin de bytes, que contiene datos o programas. Los cuales se encuentra almacenados en unidad de almacenamiento externo.

0 1 0 0 1 0

1 0 1 1 0 1

1 0 1 0 0 1

1 0 0 1 0 1

0 0 1 1 0 1

1 0 1 1 1 0

0 1 0 1 0 1

1 1 0 0 1 0

Programacin Prof. Gonzalo Mller Clase 22 GM - 8

Archivo
Todo archivo esta representado por una etiqueta de presentacin, que permite al usuario identificarlo fcil y rpidamente.

0 1 0 0 1 0

1 0 1 1 0 1

1 0 1 0 0 1

1 0 0 1 0 1

0 0 1 1 0 1

1 0 1 1 1 0

0 1 0 1 0 1

1 1 0 0 1 0

1 1 1 0 0 1

Ejercicio1.HTML

Programacin Prof. Gonzalo Mller Clase 22 GM - 9

Archivo
La etiqueta esta formada por dos partes:
Nombre
Nombre

Apellido
Familia a la que pertenece

Nombre

Extensin

Nombre.Extensin

Programacin Prof. Gonzalo Mller Clase 22 GM - 10

Archivo
La etiqueta esta formada por dos partes:
Nombre
Nombre

Apellido
Familia a la que pertenece

Nombre

Extensin

Nombre.Extensin
Ejercicio1.HTML Nombre Archivo HTML

Programacin Prof. Gonzalo Mller Clase 22 GM - 11

Tipos de Archivo
Texto: Contiene datos en formato legible (texto). Representacin en Caracteres. (Programa Fuente)

Programacin Prof. Gonzalo Mller Clase 22 GM - 12

Tipos de Archivo
Binarios: Ejecutables: Contiene las instrucciones en cdigo de maquina de un programa ejecutable. (Programa Ejecutable) Datos: Contiene datos en formato de maquina. Representacin Binaria (tal como en memoria)

Programacin Prof. Gonzalo Mller Clase 22 GM - 13

Tipos de Archivo
Datos en Archivo de Texto:

Tipo Nmero (entero, real) Carcter Lgico

Guarda como Texto Carcter NA

Programacin Prof. Gonzalo Mller Clase 22 GM - 14

Tipos de Archivo
Datos en Archivo de Texto: 123 -> 123 -> 1 2 3 -> 3 Bytes en lugar de 1

Tipo Nmero (entero, real) Carcter Lgico

Guarda como Texto Carcter NA

Programacin Prof. Gonzalo Mller Clase 22 GM - 15

Tipos de Archivo
Datos en Archivos Binarios: Contiene datos en formato de maquina. Representacin Binaria (tal como en memoria) 123 -> 1 Byte
Tipo Nmero (entero, real) Carcter Lgico Guarda como Nmero (entero:1,2,4,8 B. real:4,8 B) Carcter (1 Byte) Lgico (1 Byte)

Programacin Prof. Gonzalo Mller Clase 22 GM - 16

Flujo Entrada/Salida
El flujo de entrada y salida de datos puede ser realizado forma directa con el usuario a travs del teclado y el monitor. Entrada Teclado Programa Salida Monitor

Programacin Prof. Gonzalo Mller Clase 22 GM - 17

Flujo Entrada/Salida
El flujo de entrada y salida de datos puede ser realizado forma directa con el usuario a travs del teclado y el monitor o utilizando archivos. Entrada Teclado
y/o

Programa

Salida Monitor
y/o

Archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 18

Archivo

Flujo Entrada/Salida
El flujo de entrada y salida de datos puede ser realizado forma directa con el usuario a travs del teclado y el monitor o utilizando archivos. Entrada Teclado
y/o

Programa

Salida Monitor
y/o

Archivo
modo lectura
Programacin Prof. Gonzalo Mller Clase 22 GM - 19

Archivo
modo escritura

Flujo Entrada/Salida
C ofrece una coleccin de funciones para el manejo de archivo predefinidas en las libreras estndar stdio.h.

Entrada Teclado
y/o

Programa

Salida Monitor
y/o

Archivo
modo lectura
Programacin Prof. Gonzalo Mller Clase 22 GM - 20

Archivo
modo escritura

Flujo Entrada/Salida
C ofrece una coleccin de funciones para el manejo de archivo predefinidas en las libreras estndar stdio.h.
scanf printf

Entrada Teclado
y/o

fscanf

Programa

fprintf

Salida Monitor
y/o

Archivo
modo lectura
Programacin Prof. Gonzalo Mller Clase 22 GM - 21

Archivo
modo escritura

Flujo Entrada/Salida
C ofrece una coleccin de funciones para el manejo de archivo predefinidas en las libreras estndar stdio.h.
scanf fscanf printf

Entrada Teclado
y/o

Programa

fprintf

Salida Monitor
y/o

Archivo
modo lectura
Programacin Prof. Gonzalo Mller Clase 22 GM - 22

Archivo
modo escritura

Flujo Entrada/Salida
C ofrece una coleccin de funciones para el manejo de archivo predefinidas en las libreras estndar stdio.h.
scanf printf

Entrada Teclado
y/o

fscanf

Programa

fprintf

Salida Monitor
y/o

Archivo
modo lectura
Programacin Prof. Gonzalo Mller Clase 22 GM - 23

Archivo
modo escritura

Flujo Entrada/Salida
En C un archivo es manejado por un puntero: FILE *
scanf printf

Entrada Teclado
y/o

fscanf

Programa

fprintf

Salida Monitor
y/o

Archivo
FILE *

FILE es una estructura que contiene la informacin necesaria para manejar un archivo modo lectura

Archivo
FILE *

modo escritura

Programacin Prof. Gonzalo Mller Clase 22 GM - 24

Manejo de un archivo
El proceso consta de 3 pasos bsicos: 1. Apertura del archivo. 2. Manipulacin del archivo. 3. Cierre del archivo

Programacin Prof. Gonzalo Mller Clase 22 GM - 25

Manejo de un archivo
Apertura del archivo: antes de poder utilizar un archivo este debe ser abierto. fopen: abre un archivo y retorna un puntero al mismo:
puntero = fopen(nombre, modo);

en caso de algn error se retorna 0 nombre: ruta completa al archivo


Programacin Prof. Gonzalo Mller Clase 22 GM - 26

Manejo de un archivo
modo: indica en que forma debe ser abierto el archivo.
Modo Descripcin r abre un archivo existente para lectura (solo lectura). w abre un nuevo archivo para escritura (solo escritura), si el archivo existe se crea uno nuevo, destruyendo el existente. a abre un archivo existente para aadir (solo escritura), si el archivo no existe se crea uno nuevo. b binario
Programacin Prof. Gonzalo Mller Clase 22 GM - 27

Manejo de un archivo
de esta forma se dispone de los siguientes posibles modos:
Modo r w rb wb Descripcin lectura de archivo de texto escritura de archivo de texto lectura de archivo binario escritura de archivo binario

Programacin Prof. Gonzalo Mller Clase 22 GM - 28

Manejo de un archivo
Ejemplo: Apertura de archivo de texto para lectura
FILE *pArch; pArch = fopen(test.txt, r); if(pArch != 0) {

Programacin Prof. Gonzalo Mller Clase 22 GM - 29

Manejo de un archivo
Ejemplo: Apertura de archivo de texto para lectura
FILE *pArch; pArch = fopen(test.txt, r); if(pArch != 0) {
la estructura FILE contiene informacin sobre ubicacin de archivo, modo de apertura, ubicacin del buffer, posicin actual entre otros
Programacin Prof. Gonzalo Mller Clase 22 GM - 30

Manejo de un archivo
Cierre del archivo: luego de utilizar un archivo este debe ser cerrado, de esta forma se libera el recurso del sistema y otras aplicaciones pueden utilizarlo sin conflicto. fclose: cierra un archivo:
fclose(puntero);

Programacin Prof. Gonzalo Mller Clase 22 GM - 31

Manejo de un archivo
Ejemplo: Cierre de archivo
FILE *pArch; pArch = fopen(test.txt, r); if(pArch != 0) { ... fclose(pArch); }
Programacin Prof. Gonzalo Mller Clase 22 GM - 32

Salida a un archivo

Apertura del archivo


fopen(archivo, w)

Manejo del archivo


fprintf()

Cierre del archivo


fclose()

Programacin Prof. Gonzalo Mller Clase 22 GM - 33

Salida a un archivo
fprintf: Escribe la informacin indicada en un archivo tipo texto. Formas de uso: 1. Solo texto, sin formato:
fprintf(puntero, texto);

Archivo de Informacin
Programacin Prof. Gonzalo Mller Clase 22 GM - 34

Salida a un archivo
Ejemplo:
/* Escribe en C++ es el 1*/ fprintf(pArch, 1); el archivo: Lenguaje es el

Lenguaje

C++

/* Escribe en dos lneas en el archivo: Lenguaje C++ es el Mejor!*/ fprintf(pArch, Lenguaje C++\n); fprintf(pArch, es el Mejor!);
Programacin Prof. Gonzalo Mller Clase 22 GM - 35

Ejercicio

Construir un programa en C++ para guardar su datos personales en un archivo Fase 1: Diseo y Anlisis: DES, DTD y UML DES de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa en C++.

Programacin Prof. Gonzalo Mller Clase 22 GM - 36

Salida a un archivo
2. Texto + variables, con formato: Escribe el valor de un conjunto de variables en un archivo de texto:
fprintf(puntero,Formato,Variable1 , Variable2,);

Formato: constante texto que establece que tipo de variables estn contenidas en las lista.
Archivo de Informacin Archivo de Datos

Programacin Prof. Gonzalo Mller Clase 22 GM - 37

Salida a un archivo
El formato esta constituido por al menos una lista de especificadores que indica el tipo.
Un especificador esta formado por un carcter porcentaje y una letra, la cual indica el tipo de variable correspondiente:
Letra c d u x,X f,e,E,g,G s Tipo de dato Carcter Entero con signo Entero sin signo Hexadecimal Real String

%Letra

Programacin Prof. Gonzalo Mller Clase 22 GM - 38

Salida a un archivo
Ejemplo:
/* Escribe en el archivo: El valor de la variable uwContador */ fprintf(pArch,%u, uwContador); /* Escribe en el archivo: El valor de la variable uwContador y dMedia fprintf(pArch,%u dMedia); %f, uwContador,

Programacin Prof. Gonzalo Mller Clase 22 GM - 39

Salida a un archivo
fprintf(puntero,%Letra1 %Letra2,
Correspondencia

Variable1,Variable2);

No es recomendable colocar texto adicional en el formato, ya que afectara la lectura del archivo Ejemplo
fprintf(pArch,Se encontraron %u datos, cuyo promedio fue %f,uwContador, dMedia);

Archivo de Informacin
Programacin Prof. Gonzalo Mller Clase 22 GM - 40

Salida a un archivo
fprintf(puntero,%Letra1 %Letra2,
Correspondencia

Variable1,Variable2);

No es recomendable colocar texto adicional en el formato, ya que afectara la lectura del archivo Ejemplo
fprintf(pArch,%u %f, uwContador, dMedia);

Archivo de Datos
Programacin Prof. Gonzalo Mller Clase 22 GM - 41

Salida a un archivo
fprintf(puntero,%Letra1 %Letra2,
Correspondencia

Variable1,Variable2);

No es recomendable colocar texto adicional en el formato, ya que afectara la lectura del archivo Ejemplo
fprintf(pArch,Se encontraron %u datos, cuyo promedio fue %f,uwContador, dMedia); fprintf(pArch,%u %f, uwContador, dMedia);

Archivo de Datos
Programacin Prof. Gonzalo Mller Clase 22 GM - 42

Ejercicio
Construir un programa en C++ para guardar N edades y pesos Fase 1: Diseo y Anlisis: DES, DTD y UML DES de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa en C++.
Notas Leer Escribir

Leer de teclado

Escribir en archivo

Programacin Prof. Gonzalo Mller Clase 22 GM - 43

Tipos de Archivo
Archivo de Informacin Archivo de Datos

Guardar informacin para ser utilizada Guardar datos que son procesados por el directamente por el usuario programa para luego ser mostrados al usuario

Programa Programa

Archivo

Archivo

texto texto texto texto texto texto texto texto texto texto archivo

registro1 registroN archivo

Programacin Prof. Gonzalo Mller Clase 22 GM - 44

Archivo Texto de Datos

Tamao Definido
N registro1 registroN archivo

Tamao Indefinido
registro1 registroN archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 45

Archivo Texto de Datos


Tambin se conocen como archivos secuenciales

Tamao Definido
N registro1 registroN archivo

Tamao Indefinido
registro1 registroN archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 46

Archivo Texto de Datos


Registro Metadatos
Define como esta constituido cada registro del archivo

Datos

Programacin Prof. Gonzalo Mller Clase 22 GM - 47

Archivo Texto de Datos


Creacin de archivo de datos de tamao definido

Escribir en archivo N Mientras (k < N) Escribir en archivo Registro k

Programacin Prof. Gonzalo Mller Clase 22 GM - 48

Archivo Texto de Datos


Creacin de archivo de datos de tamao indefinido

Mientras (k < N) Escribir en archivo Registro k

Programacin Prof. Gonzalo Mller Clase 22 GM - 49

Entrada desde un archivo

Apertura del archivo


fopen(archivo, r)

Manejo del archivo


fscanf()

condicin

Cierre del archivo


fclose()

Programacin Prof. Gonzalo Mller Clase 22 GM - 50

Entrada desde un archivo


fscanf: Lee uno o ms datos desde un archivo de texto y escribe en la variable indicada el resultado. Forma de uso:
fscanf(puntero,Formato,&Variable1, &Variable2, ...);

Formato: constante texto que establece que tipos de variables sern ledas.
Programacin Prof. Gonzalo Mller Clase 22 GM - 51

Entrada desde un archivo


El formato est constituido por los especificadores que indica los tipos de dato a leer:
%Letra1 %Letra2 %LetraN Letra Tipo de dato Observacin c Carcter No lee espacio en blanco d Entero con Prefijo l para long, h para short, hh para char, ll para long long signo u Entero sin Prefijo l para long, h para short, signo hh para char, ll para long long x Hexadecimal Hexadecimal f,e,E,g,G float Prefijo l o L para double s string Lee hasta , \t, \n , \r
Programacin Prof. Gonzalo Mller Clase 22 GM - 52

Entrada desde un archivo


Algunos formatos bsicos para la lectura seran:
Formato %c %hhd %hhu %hd %hu %ld %lu %f %lf %s Tipo de dato char signed char unsigned char signed short unsigned short signed long unsigned long float double string

(ISOC9899) (ISOC9899)

Programacin Prof. Gonzalo Mller Clase 22 GM - 53

Entrada desde un archivo


Algunos formatos bsicos para la lectura seran:
Formato %c %hhd %hhu %hd %hu %ld %lu %f %lf %s Tipo de dato char signed char unsigned char signed short unsigned short signed long unsigned long float double string

Problemtico
(ISOC9899) (ISOC9899)

Programacin Prof. Gonzalo Mller Clase 22 GM - 54

Entrada desde un archivo


Ejemplo:
Lee 1 Valor /*Lee de un archivo: El valor de la variable uwCantidad*/ fscanf(pArch, %hu, &uwCantidad);

Archivo 1 dato
Programacin Prof. Gonzalo Mller Clase 22 GM - 55

Entrada desde un archivo


Ejemplo:
/*Lee de un archivo: El valor de la variable uwCantidad*/ fscanf(pArch, %hu, &uwCantidad); Lee Ms de 1 Valor /*Lee de un archivo: El valor de la variable uwCantidad y fPromedio*/ fscanf(pArch,%hu &fPromedio);

%f,&uwCantidad,

Archivo 2 datos
Programacin Prof. Gonzalo Mller Clase 22 GM - 56

Entrada desde un archivo


fscanf lee del archivo el valor o valores indicados en el formato hasta encontrar un separador: espacio en blanco ` , tabulacin `\t, tabulacin vertical `\v, retorno de carro `\r, nueva lnea `\n o nueva forma `\f
XXX XX X XXX XX XX XX XX XXXX XXXX XX X
archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 57

Entrada desde un archivo


fscanf lee del archivo el valor o valores indicados en el formato hasta encontrar un separador: espacio en blanco ` , tabulacin `\t, tabulacin vertical `\v, retorno de carro `\r, nueva lnea `\n o nueva forma `\f
pArch
XXX XX X XXX
FILE* pArch

fopen

XX XX XX XX XXXX XXXX XX X
archivo

pArch=fopen(, r)

Programacin Prof. Gonzalo Mller Clase 22 GM - 58

Entrada desde un archivo


fscanf lee del archivo el valor o valores indicados en el formato hasta encontrar un separador: espacio en blanco ` , tabulacin `\t, tabulacin vertical `\v, retorno de carro `\r, nueva lnea `\n o nueva forma `\f
pArch
XXX XX X XXX
fscanf(%hu,&d[k])

k=1

fscanf

XX XX XX XX XXXX XXXX XX X
archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 59

d[1]=XXX

Entrada desde un archivo


fscanf lee del archivo el valor o valores indicados en el formato hasta encontrar un separador: espacio en blanco ` , tabulacin `\t, tabulacin vertical `\v, retorno de carro `\r, nueva lnea `\n o nueva forma `\f
pArch
XXX XX X XXX
fscanf(%hu,&d[k])

k=2

fscanf

XX XX XX XX XXXX XXXX XX X
archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 60

d[2]=XX

Entrada desde un archivo


fscanf lee del archivo el valor o valores indicados en el formato hasta encontrar un separador: espacio en blanco ` , tabulacin `\t, tabulacin vertical `\v, retorno de carro `\r, nueva lnea `\n o nueva forma `\f

XXX XX X XXX
fscanf(%hu,&d[k])

fscanf

XX XX XX XX XXXX XXXX XX X
archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 61

Entrada desde un archivo


fscanf lee del archivo el valor o valores indicados en el formato hasta encontrar un separador: espacio en blanco ` , tabulacin `\t, tabulacin vertical `\v, retorno de carro `\r, nueva lnea `\n o nueva forma `\f
k=4 pArch fscanf
XXX XX X XXX
fscanf(%hu,&d[k])

XX XX XX XX XXXX XXXX XX X
archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 62

d[4]=XXX

Entrada desde un archivo


Ejemplo:
fscanf(pArch, %hu, &uwCantidad); printf(%u, uwCantidad); fscanf(pArch, %hu, &uwCantidad); printf(%u, uwCantidad); fscanf(pArch, %hu, &uwCantidad); printf(%u, uwCantidad);
Varios separadores contiguos son ledos como 1 solo por fscanf
Archivo 3 datos
Programacin Prof. Gonzalo Mller Clase 22 GM - 63

Entrada desde Archivo de Tamao Definido

Apertura del archivo


fopen(archivo, r)

Manejo del archivo


fscanf()

k < N

Cierre del archivo


fclose()

Archivo de Datos de Tamao Definido


Programacin Prof. Gonzalo Mller Clase 22 GM - 64

Entrada desde Archivo de Tamao Definido


Usualmente se har uso de un bucle para explorar un archivo
Leer cantidad N Mientras (k < N) Leer Registro k del archivo
No siempre es necesario utilizar el feof, por ejemplo: si se conoce de antemano la cantidad de datos a leer
Programacin Prof. Gonzalo Mller Clase 22 GM - 65

Lectura del archivo

Entrada desde Archivo de Tamao Definido


Ejemplo:
pArch = fopen(test.txt, r); fscanf(pArch,test.txt,&N); while(k < N) { fscanf(pArch,# # #,&,&,); }
Programacin Prof. Gonzalo Mller Clase 22 GM - 66

Ejercicio
Conjunto de Tamao Definido Construir un programa modular en C++ con acoplamiento de datos para leer un archivo que contiene un conjunto, de tamao Definido, de personas y los presente en pantalla. Cada persona posee: nombre (string), edad (entero), genero (carcter).
Personas Leer Escribir

Leer de archivo

Escribir en pantalla

Programacin Prof. Gonzalo Mller Clase 22 GM - 67

Entrada desde Archivo de Tamao Indefinido

Apertura del archivo


fopen(archivo, r)

Manejo del archivo


fscanf()

!feof()

Cierre del archivo


fclose()

Archivo de Datos de Tamao Indefinido


Programacin Prof. Gonzalo Mller Clase 22 GM - 68

Entrada desde Archivo de Tamao Indefinido


Al leer un archivo es posible determinar cuando se ha alcanzado el final del mismo y detener el proceso. feof: indica si se ha alcanzado el final del archivo. Forma de uso: feof(puntero) retorna true en caso de que el puntero se encuentre al final del archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 69

Entrada desde Archivo de Tamao Indefinido


fscanf lee del archivo el valor o valores indicados en el formato hasta encontrar un separador: espacio en blanco ` , tabulacin `\t, tabulacin vertical `\v, retorno de carro `\r, nueva lnea `\n o nueva forma `\f
pArch fscanf
XXX XX X XXX
feof(pArch)

XX XX XX XX XXXX XXXX XX X
archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 70

Entrada desde Archivo de Tamao Indefinido


Usualmente se har uso de un bucle para explorar un archivo
Mientras (!Final de archivo) Leer Registro k del archivo
No siempre es necesario utilizar el feof, por ejemplo: si se conoce de antemano la cantidad de datos a leer
Programacin Prof. Gonzalo Mller Clase 22 GM - 71

Lectura del archivo

Entrada desde Archivo de Tamao Indefinido


Ejemplo:
pArch = fopen(test.txt, r); while(!feof(pArch)) { fscanf(pArch,# # #,&,&,); }

Programacin Prof. Gonzalo Mller Clase 22 GM - 72

Ejercicio
Conjunto de Tamao Indefinido Construir un programa modular en C++ con acoplamiento de datos para leer un archivo que contiene un conjunto, de tamao indefinido, de personas y los presente en pantalla. Cada persona posee: nombre (string), edad (entero), genero (carcter).
Personas Leer Escribir No cambia

Leer de archivo

Escribir en pantalla

Programacin Prof. Gonzalo Mller Clase 22 GM - 73

Ejercicio
Construir un programa modular en C++ con acoplamiento de datos para: Leer un archivo que contiene un conjunto, de tamao indefinido, de personas y presente en la salida los mayores de cierta edad. Cada persona posee: nombre (string), edad (entero), genero (carcter). Fase 1: Diseo y Anlisis: DES, DTD y UML DES de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 22 GM - 74

Ejercicio
Construir un programa modular en C++ con acoplamiento de datos para: Leer un archivo que contiene un conjunto, de tamao indefinido, de personas y presente en la salida los de un nombre especfico. Cada persona posee: nombre (string), edad (entero), genero (carcter). Fase 1: Diseo y Anlisis: DES, DTD y UML DES de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 22 GM - 75

Ejercicio
Construir un programa modular en C++ con acoplamiento de datos para: Leer un archivo que contiene un conjunto, de tamao indefinido, de personas y presente en la salida los de un genero especfico. Cada persona posee: nombre (string), edad (entero), genero (carcter). Fase 1: Diseo y Anlisis: DES, DTD y UML DES de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 22 GM - 76

Ejercicio
Construir un programa modular en C++ con acoplamiento de datos para: Leer un archivo que contiene un conjunto, de tamao indefinido, de personas y presente en la salida ordenados de mayor a menor. Cada persona posee: nombre (string), edad (entero), genero (carcter). Fase 1: Diseo y Anlisis: DES, DTD y UML DES de Mdulos y TM. DRE DF, LV y CF de Bloque Principal. Fase 2: Codificacin: programa modular en C++.
Programacin Prof. Gonzalo Mller Clase 22 GM - 77

Resumen
Puntero Flujo de entrada y salida de datos. Archivo Texto Binario FILE * modo lectura. modo escritura.
Programacin Prof. Gonzalo Mller Clase 22 GM - 78

Resumen
Manejo de un archivo 1. Apertura del archivo: fopen (r, w, a) 2. Manipulacin del archivo.
Archivo de Informacin, Archivo de Datos.
Tamao Definido. Tamao Indefinido.

Escritura: fprintf. Lectura: fscanf, feof

3. Cierre del archivo: fclose.

Programacin Prof. Gonzalo Mller Clase 22 GM - 79

Resumen
Lectura de conjuntos de un archivo: Conjunto de Tamao Definido
N registro1 registroN archivo

Conjunto de Tamao Indefinido


registro1

feof

registroX archivo
Programacin Prof. Gonzalo Mller Clase 22 GM - 80

Lectura Extra

Mas sobre punteros

Programacin Prof. Gonzalo Mller Clase 22 GM - 81

Puntero
El identificador de un arreglo constituye un puntero al primer elemento. Ejemplo:
En la notacin suele usarse el prefijo p para indicar que el tipo definido es un puntero unsigned char arreglo[4]; unsigned char *pArreglo; pArreglo = arreglo; Totalmente vlido printf(%X, arreglo); Escribe A3F6 en la pantalla printf(%X, pArreglo); Escribe A3F6 en la pantalla

arreglo
1 Elemento

A3F6

Direccin de memoria del 1 Elemento


Programacin Prof. Gonzalo Mller Clase 22 GM - 82