Allora, l'idea è questa:
la prima volta che enstro all'interno del do mi da in cout "Digitare numero matricola", si incrementa l'am e, se il valore del numero di matricola non va bene, il while rimanda al do che questa volta, con il valore di am incrementato, passa all'else che da invece in cout ERRORE: ridigitare numero di matricola
idem per il voto.. però, non so perchè quando mando in esecuzione fa un casino della madonna..
Altra cosa molto importante è che il file aperto lo devi chiudere all'uscita del giro principale.
ma il file non lo chiude automaticamente quando termina il programma?