Sto scrivendo un programma in C utilizzando i file. Il mio livello di conoscenze premetto che è basilare (tanto per intenderci sono uno studente al 4° anno perito informatico). Il programma che sto implementando è sulla gestione di un magazzino e non riesco a sovrascrivere in un campo del record di un file. Il pezzo di codice è questo

codice:
void segnala_pagato(newtype vet){
   int id;
   visualizzazione_totale(vet);
   printf("Inserisci l'id del prodotto da segnalare come pagato:");
   scanf("%d",&id);
   fp=fopen("file","r+");
   while((fread(&vet,sizeof(vet),1,fp)) > 0){
      if(id==vet.id){
         if(vet.pagato == 2){
            vet.pagato==1;
            fwrite(&vet,sizeof(vet),1,fp);
            break;
         }
      }
   }
   fclose(fp);
   getch();
}
In parole povere se il prodotto non è stato pagato il campo della struttura vet (ovvero vet.pagato) prende l'intero 2 al contrario se è stato pagato prende 1. quando vadoa fare l'inserimento metto di default che il prodotto non è stato pagato (vet.pagato==2) però poi con un altra procedura vorrei modificarna il valore. Il mio spezzone di programma in alto non funziona. Consigli? grazie in anticipo =)