salve a tutti, qualcuno sa dirmi cosa c' è che non va in questa funzione..

codice:
void scrivi(int n, char *nome_file) {
	struct libro aus;
	int record_da_inserire;
	FILE *archivio;
	archivio = fopen(nome_file,"w+b");
	cout << "\n\nQuale record vuoi inserire ? ";
	cin >> record_da_inserire;

	cout << "\n\n  Isbn         ";
	cin >> aus.isbn;
	cout << "  Titolo       ";
	cin >> aus.titolo;
	cout << "  Prezzo       ";
	cin >> aus.prezzo;
	aus.stato=1;

	fseek(archivio,sizeof(struct libro)*record_da_inserire,SEEK_SET);
	fwrite(&aus,sizeof(struct libro),1,archivio);
	cout << "\n\n";
	system("pause");
	fclose(archivio);
}
perchè quando vado ad inserire un nuovo record nell' archivio, riempie l' archivio di tutti record aventi il contenuto uguale al record inserito in precedenza.