Sicuro che il file venga aperto? Altrimenti lo stream ignora l'operazione di estrazione e i terrà in valore casuale con cio viene creata. Introduci un controllo.

codice:
fstream input;
input.open("matricole.txt",ios::in);
int i;
if (input) { 
    input>>i;
} else {
    cout << "file non trovato" << endl;
}