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