Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/12/2010, 06:52
DavidSCA
 
Fecha de Ingreso: diciembre-2010
Mensajes: 8
Antigüedad: 13 años, 5 meses
Puntos: 0
Problema con estructuras y ficheros.

Buenas, estaba programando un problema a priori sencillo, pero se me han planteado muchas dudas. El problema en cuestión pide que con un archivo binario "ejemplo.bin" lleno de estructuras, vaya leyendo uno por uno cada alumno, y si su nota es menor que 5, escriba el nombre y la nota (sólo esos dos campos) en el fichero "aprobados.bin" de lo contrario, en "suspendidos.bin".
Me da muchos errores a partir del if(clase.nota<5) . A ver si alguien me echa un cable.

Un saludo y gracias de antemano.
Código:
#include <stdio.h>
#include <stdlib.h>

struct alumno{
    char nombre[50];
    int grupo;
    float nota;
};
main(){
    struct alumno clase[50];
    FILE * fichero;
    FILE * aprobados;
    FILE * suspendidos;
    int cont=0,i,num;
    float x;
    fichero=fopen("ejemplo.bin","rb");
    if (fichero==NULL){
        printf("No se puede abrir el archivo");
        exit (-1);
    }
    aprobados=fopen("aprobados.bin","rb");
    suspendidos=fopen("suspendidos.bin","rb");
    while(fread(&x,sizeof(x),1,fichero)!=0){
            if(clase.nota<5){
                fwrite(&fichero,sizeof(char (clase.nombre[50])),1,suspendidos);
                fwrite(&fichero,sizeof(float (clase.nota)),1,suspendidos);
            }
            else{
                fwrite(&fichero,sizeof(char (clase.nombre[50])),1,aprobados);
                fwrite(&fichero,sizeof(float (clase.nota)),1,aprobados);
            }
                
                
    }
}