Hice esto y ya va el visualizar directamente:
Código:
void mostrarpers(persona *p,int dim)
{ FILE *F;
persona aux;
int i;
F = fopen("C:/agenda","rb");
if(F==NULL)
{
printf("\n\tNo se puede abrir el archivo\n");
system("pause");
exit(1);
}
fread(&aux,sizeof(struct persona),1,F);
while(!feof(F))
{
printf("%s",aux.nom);
printf("\t\t%s",aux.ap);
cout<<"\n\n";
fread(&aux,sizeof(struct persona),1,F);
}
fclose(F);
system("pause");
}
Si en la funcion visualizar vuelves a abrir el fichero, que es lo normal y lógico, no hace falta que le mandes las variables que le mandas, yo lo que haría es declararlas localmente en la función, o globalmente de una vez, y de esta manera fue que yo aprendí, no le veo la necesidad a los punteros para trabajar con ficheros :P, ya los usarás bastante en listas, pilas, colas, arboles.. etc xD.