Nombre: Del Castillo Morales Mauricio
Matricula: 2162003332
1. CODIGO
#include<iostream>
#include<string.h>
#include<stdio.h>
#define MAX 10
#define TAM 5
#define ARCH "REGISTROS.DAT"
using namespace std;
//Declaracion del struct TRegistro.
struct TRegistro{
int id;
char nombre[MAX];
};
//Firmas de las funciones.
void escribirArchivo(TRegistro arreglo[]),leerArchivo();
int main(void){
TRegistro arrayRecord[TAM] =
{1,"Juan",2,"Paco",3,"Pedro",4,"Ana",5,"Rocío"};
escribirArchivo(arrayRecord);
leerArchivo();
}
//Esta funcion escribe un archivo binario, de nombre ARCH, el contenido del
parametro arreglo de tipo TRegistro.
//Si al intentar escribir el archivo se retorna NULL, entonces se emite un
mensaje informando que no se puede escribir en el archivo.
void escribirArchivo(TRegistro arreglo[]){
FILE * escArch;
if((escArch = fopen(ARCH, "wb")) == NULL)
printf("Imposible escribir en el archivo.\n");
else{
//Se escribe en una sola instruccion todos los registros.
fwrite(arreglo,sizeof(TRegistro),TAM,escArch);
printf("\nLOS REGISTROS SE HAN GUARDADO EN EL MEDIO EXTERNO
EXITOSAMENTE");
fclose(escArch);
}
}
//Esta funcion lee un archivo binario, de nombre ARCH, e imprime su contenido en
pantalla.
//Si al intentar leer el archivo se retorna NULL, entonces se emite un mensaje
informando que no se puede leer el archivo.
void leerArchivo(){
TRegistro elem;
FILE * lecArch;
if((lecArch = fopen(ARCH, "rb")) == NULL)
Nombre: Del Castillo Morales Mauricio
Matricula: 2162003332
printf("Imposible leer el archivo.\n");
else{
printf("\nLECTURA DEL ARCHIVO: \n");
//Se lee uno a uno los registros contenidos en el archivo
fread(&elem,sizeof(TRegistro),1,lecArch);
while(!feof(lecArch)){
printf("%d ",elem.id);
printf("%s\n",elem.nombre);
fread(&elem,sizeof(TRegistro),1,lecArch);
}
fclose(lecArch);
}
}
2. EJECUCIÓN