Salve ragazzi,come da titolo mi servirebbe una mano con questo tipo di funzione,dove m e n NON sono note.
La funzione che prima usavo quando m e n erano note era questa:
void CaricaMatrice(char NomeFile[],int Matrice[][Max_colonne],int n_riga,int n_colonna)
{ifstream leggi;
leggi.open(NomeFile);
for (unsigned int riga = 0; riga < n_riga; riga++) {
for (unsigned int colonna = 0; colonna < n_colonna; colonna++) {
leggi >> Matrice[riga][colonna];
cout << Matrice[riga][colonna] << "\t";
}
cout << endl;
}
leggi.close();
}
int main()
{CaricaMatrice("C:\\Users\\Vittorio\\Desktop\\matrice.txt",Matrice,r,c); // r e c sono due costanti
}
Come si può notare,nel momento della chiamata,sono costretto a dover già conoscere la dimensione della matrice.
Tuttavia a me serve un modo che mi permetta di calcolare la dimensione di essa..
Nei vettori era molto semplice,poichè bastava un ciclo while che leggesse fino alla fine del file,e alla fine di ogni iterazione facevo aumentare una variabile contatore,che mi dava la dimensione.In questo caso però non è possibile poichè le variabili verrebbero aumentate ad ogni elemento della matrice..(e comunque essendo una matrice generica le righe saranno diverse dalle colonne).Avevo pensato ad utilizzare il getline,che mi avrebbe dato senza problemi il numero di righe,con lo stesso procedimento dei vettori,però a quel punto non sarei in grado di capire da quanti elementi è composta una riga...e quindi rimango sempre
bloccato.. :S