Jorge Luis Ramos Huertado 20
Enrique jose Jimenes altamirano 17
juan Men Otero ford 20
Carlos YARA tataje 19
Lo intentado leer con este programa(es solo una parte del programa), pero cuando lo muestro, me repiten los datos y otros simbolos, y no salen de manera estructurada.
Lo que quiero es tener los datos ordenados en memoria para poder realizar otras funciones. como mostrar solo los nombres o los apellidos con las edades
Código:
#include<conio.h>
#include<cstdlib>
#include<stdio.h>
using namespace std;
const int MAX =10;
struct persona{
char nombre[20];
char apellido[20];
int edad;
};
void mostrardatos(persona p[MAX],int dim);
void recuperar(persona p[MAX], int *dim);
int main()
{
int nd=0;
char opc;
persona a[MAX];
do{
opc=getch();
switch(opc){
case'1':system("cls");
mostrardatos(a,nd);
getch();
break;
case'2':system("cls");
recuperar(a,&nd);
getch();
break;
}
}while(opc!='0');
system("pause");
return (0);
}
void mostrardatos(persona p[MAX],int dim)
{
int i;
if(dim==0){
printf("\n\tNo hay datos registrados");
}
for(i=0;i<dim;){
printf("%6d",i+1);
printf("\t%s",p[i].nombre);
printf("\t\t%s",p[i].apellido);
printf("\t\t%d\n",p[i].edad);
i=i+1;
}
printf("\n\n");
}
void recuperar(persona p[MAX], int *dim)
{
persona A;
FILE *F;
int n=0;
F=fopen("datos.txt","r+");
if(F==NULL){
cout<<"No se puede abrir el Archivo\n";
exit(1);
}
while(!feof(F)){
fread(&A,sizeof(A),1,F);
p[n]=A;
n=n+1;
}
fclose(F);
*dim=n-1;
cout<<"\t\tSus Datos han sido Recuperados";
cout<<"\n\n";
cout<<"\t\t";
system("pause");
}
Les agradeceria mucho su ayuda.