Ma così facendo, cioè incrementando sia r che c ad ogni passo, ottieni l'effetto di leggere gli elementi solo nella diagonale principale (m[0][0], m[1][1], m[2][2] ecc...).
Io pensavo che conoscessi a priori le dimensioni della matrice, o al massimo runtime così avresti potuto ricorrere all'allocazione dinamica. Comunque a questo punto puoi fare una così: leggi il file riga per riga con il metodo getline(), estrai dalla stringa ottenuta i numeri con la funzione strtok() e li converti in interi con atoi(), assegnandoli poi alla matrice. Chiaramente, a seconda di quanti numeri ci sono nella stringa saprai quanti elementi ha una riga.
E' probabile che esista una soluzione più C++ like, ma al momento non mi viene in mente altro.