Ver Mensaje Individual
  #23 (permalink)  
Antiguo 03/04/2010, 13:40
minette1988
 
Fecha de Ingreso: febrero-2010
Mensajes: 258
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: fichero binario que calcula la media

He añadido la función mostrar_todo al final del programa para que me muestre todos los registros, pero cuando me pregunta ¿otro alumno? y pongo no se repiten los datos de un mismo alumno sin parar. ¿Qué estoy haciendo mal?.

Primero la defino en el main()

Código C:
Ver original
  1. int main(){
  2.  
  3.    void alta_alumno(const char[]);
  4.    double media(const char[]);
  5.    void mostrar_mayores_media(const char[], double);
  6.    void mostrar_todo(const char[]);
  7.    alta_alumno("alumnos.dat");
  8.    mostrar_mayores_media("alumnos.dat", media("alumnos.dat"));
  9.    mostrar_todo("alumnos.dat");
  10.    exit(0);
  11. }

A continuación te muestro dicha función:

Código C:
Ver original
  1. void mostrar_todo(const char nom_fich[]){
  2.  
  3.     FILE *pf;
  4.     struct alumno al;
  5.  
  6.     rewind(pf); /*Se coloca al principio del fichero*/
  7.     fread(&al, sizeof(al), 1, pf);
  8.     while(!feof(pf)){
  9.           printf("%s %s %s %.2lf\n", al.apell1, al.apell2, al.nom, al.nota);
  10.           fread(&al, sizeof(al), 1, pf);
  11.     }
  12. }