Está en la página 1de 2

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

También podría gustarte