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);
}
}
}