jorcoval escribió:#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct{
char nombre[41];
int unidades, pedidos;
float precio;
}producto;
main(){
producto datos;
FILE *f,*f1;
char nombreborrar[41];
char borrar;
printf("Cual deseas borrar: ");
gets(nombreborrar);
/*-----------------------------------------------------------------------------*/
if((f=fopen("fichero.bin","rb+"))==NULL){ //Abre el fichero
printf("Error");
fflush(stdin);
getchar();
return 0;
}
else{
fread(&datos,sizeof(producto),1,f);
while(!feof(f)){
if(strcmp(nombreborrar,datos.nombre)==0){
printf("\nNombre: %s",datos.nombre);
printf("\nUnidades: %d",datos.unidades);
printf("\nPrecio: %2.f",datos.precio);
printf("\nPedidos: %d",datos.pedidos);
printf("¿Deseas borrarlo? <S/N> %c");
fflush(stdin);
scanf("%c",&borrar);
if((borrar=='S')||(borrar=='s')){
fread(&datos,sizeof(producto),1,f);
}
else{
fwrite(&datos,sizeof(producto),1,f1);
}
}
else{
fwrite(&datos,sizeof(producto),1,f1);
}
}
}
fclose(f); //Cierra el Fichero
fclose(f1);
/*-----------------------------------------------------------------------------*/
rename("fichero.bin","nuevo.bin");
remove("fichero.bin");
puts("");
system("PAUSE");
}
Asi lo llevo de momento, lo que pasa me da un fallo y no se porque, haber si me puedes ayudar