Per evitare di scrivere piu volte lo stesso codice nel file devi tenerti in memoria i codici letti, puo ad esempio allocarti anzicchè un array di caratteri un array di array:

char[100][4] data;

se sai che non ci saranno più di 100 codici diversi e i codici sono lunghi 3 caratteri.

Nel while leggi il nuovo cdoice, controlli se già esiste in data e se non esiste lo aggiungi nella prossima locazione libera. Poi con un altro ciclo scrivi i codici nel file.