Beh, parlavi di "array differenti" ... di quali array differenti parli se ne hai indicato uno solo?

E poi, dato che parliamo di C++, è più sensato usare un oggetto string per il dato stringa e uno int per il numerico. E visto che non sai quante sono le righe, o lavori allocando dinamicamente un array o lavori con singole variabili da trattare volta per volta. In più, come da documentazione che ti avevo postato, il ciclo lo puoi scrivere, ad esempio

codice:
string nome;
int matr;

while ( ff.good() )
{
   ff >> nome >> matr;

   cout << nome << " " << matr << endl;
}