#include <stdio.h>

struct _datos
{
    int codigo;
    char nombre[25];
    char apellido[25];
    int edad;
    char sexo;
};
typedef struct _datos datos;

void ingresar(FILE *pf);
void mostrar(FILE *pf);

int main()
{
   FILE *pf;
   if ((pf=fopen("nuevo","r+b"))==NULL)
   {
      printf("No pude leer");
      if ((pf=fopen("nuevo","w+b"))==NULL)
      {
          printf("No pude escribir");
          return 0;
      }
   }
   if (pf==NULL)
   {
      printf("No se puede abrir archivo");
      return 0;
   }
/*   ingresar(pf);*/
   mostrar(pf);
   fclose(pf);
   return 0;
}

void ingresar(FILE *pf)
{
   datos aux;
   int i=0;
   fseek(pf,0L,SEEK_END);
   
   for(i=0;i<3;i++)
   {
      printf("Nombre:");
      scanf("%s",aux.nombre);
      printf("Apellido");
      scanf("%s",aux.apellido);
      printf("Edad");
      scanf("%d",&aux.edad);
      printf("Codigo");
      scanf("%d",&aux.codigo);
      fwrite(&aux,sizeof(aux),1,pf);   
   }
   return;
}

void mostrar(FILE *pf)
{
   datos aux;
   fseek(pf,0L,SEEK_SET);
   while (!feof(pf))
   {
      if ((fread(&aux,sizeof(aux),1,pf))==1)
      {
      printf("Nombre: %s\n",aux.nombre);
      printf("Apellido: %s \n",aux.apellido);
      printf("Edad %d\n ",aux.edad);
      printf("Codigo%d\n",aux.codigo);
      printf("Sexo %c\n",aux.sexo);
      }
      else
         printf("\nNULL\n");
   }
   return;
}

