2 maestros
2 indices.
El problema surge en el 2do maestro con el 2do indice, al cargarle el primer alumno el indice deberia quedar cargado, en el campo de posicion, con el valor 0, pero queda cargado con 3, 4 y al usar fseek para imprimir los datos del archivo maestro imprime basura. Les dejo el algoritmo a ver si me pueden dar una mano.
Código:
FILE* regulares;
FILE* inregulares;
regulares=fopen("alumnos_regulares.bin","a");
inregulares=fopen("indice_regulares.txt","at");
fread(&a,sizeof(alumnos),1,fichero);
while(!feof(fichero)){
if(a.estado==1){
ar.dni=a.dni;
strcpy(ar.nombre,a.nombre);
ar.born=a.born;
ar.sexo=a.sexo;
ar.address=a.address;
ar.college=a.college;
fwrite(&ar,sizeof(aregulares),1,regulares);
i.posicion=0;
i.posicion=ftell(regulares)-sizeof(aregulares);
fwrite(&i,sizeof(indice),1,inregulares);
}
fread(&a,sizeof(alumnos),1,fichero);
}
fichero es un puntero al otro archivo maestro.
Lo que estoy haciendo en este programa es purgar los alumnos ingresantes que cumplen las condiciones para pasar a ser regulares, y habilitarlos en el nuevo archivo.