[ Foro de C ]
Son algunas partes del programa para que se den una idea pero en si esa es la funcion que necesito, por favor, ya intente todo xc
#define MYFILE "AlumnosMAC"
typedef struct
{
char Nombre[50];
char NumCuenta[10];
Calificaciones Alumnos;
}A;
Eliminar(A *DatosAlum,int *ContA,FILE *ArchivoAlum)
{
FILE *auxArchivoAlum;
int encontrado,i=0,cerrado,auxcerrado,opc,sn;
long int posicion;
char elimina[10];
printf("Escriba el numero de cuenta del alumno que desea dar de baja:\t");
gets(elimina);
auxArchivoAlum=fopen("Alumnos MAC 2","wb+");
ArchivoAlum=fopen(MYFILE,"rb+");
if(ArchivoAlum==NULL && auxArchivoAlum==NULL)
{
printf("No se pudo abrir, el archivo no ha sido creado");
}
else
{
fread(&DatosAlum[i],sizeof(A),1,ArchivoAlum);
while(!feof(ArchivoAlum))
{
fread(&DatosAlum[i],sizeof(A),1,ArchivoAlum);
encontrado=(strcmp(elimina,DatosAlum[i].NumCuenta));
if(encontrado==0)
{
printf("Alumno: \t %s \n ",DatosAlum[i].Nombre);
posicion=ftell(ArchivoAlum)-sizeof(A);
// break;
i++;
}
else
{
fwrite(&DatosAlum[i],sizeof(A),1,auxArchivoAlum);
fflush(stdin);
i++;
fread(&DatosAlum[i],sizeof(A),1,ArchivoAlum);
}
//fread(&DatosAlum[i],sizeof(A),1,ArchivoAlum);
}
if(encontrado!=0)
{
printf("No se pudo encontrar el registro");
}
}
cerrado=fclose(ArchivoAlum);
auxcerrado=fclose(ArchivoAlum);
if(cerrado==EOF && auxcerrado==EOF)
{
printf("El archivo no se puede cerrar");
}
//int remove("MYFILE");
//int rename("Alumnos MAC 2","MYFILE");
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)