Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void guardarDatosAlumno(char * nombref,struct tAlumno p)
- {
- FILE *archivo = fopen(nombref,"r");
- if(archivo==NULL)
- {
- archivo=fopen(nombref,"wb");
- if (archivo == NULL) {
- perror("Lol: ");
- }else {
- printf("No hubo errores");
- }
- // aqui deberías comprobar que se abre bien o mostrar error...
- fwrite(&p,sizeof(struct tAlumno),1,archivo);
- fclose(archivo);
- }
- else
- {
- FILE *archivo2;
- archivo2=fopen("auxiliar","w"); // aux es un nombre reservado de sistema, mejor usa auxiliar para evitar problemas (aunque con aux quizá funcione bien)
- struct tAlumno al;
- fread(&al,sizeof(struct tAlumno),1,archivo);
- while(!feof(archivo))
- {
- if(strcmp(p.dni,al.dni)<0)
- {
- fwrite(&al,sizeof(struct tAlumno),1,archivo2);
- fread(&al,sizeof(struct tAlumno),1,archivo);
- }
- }
- fwrite(&p,sizeof(struct tAlumno),1,archivo2);
- while(!feof(archivo))
- {
- fwrite(&al,sizeof(struct tAlumno),1,archivo2);
- }
- fclose(archivo);
- fclose(archivo2);
- remove(nombref);
- rename("aux",nombref);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement