Necesito sobreescribir un archivo en C y lo unico que consigo es que me reescriba la salida que deseo al final de lo que ya tenia escrito.
Mi programa es el siguiente:
printf("\nIntroduzca la posicion del experimento que desea eliminar: ");
scanf("%d",&pos_borrar);
for(i=pos_borrar-1;i<filas;i++)
for(j=0;j<19;j++)
matriz[i][j]=matriz[i+1][j];
filas=filas-1;
posicion=ftell(datos);
fseek(datos,posicion,SEEK_SET);
for(i=0;i<filas;i++)
for(j=0;j<19;j++){
fwrite(&matriz[i][j],sizeof(matriz[i][j]),1,datos);
}
fclose(datos);
break;
Utilizo el fseek para mandarlo al principio del archivo y supuestamente el fwrite deberia escribir desde la posicion en la que me encuentro, pero no entiendo el porque escribe desde la ultima posicion.
Gracias.