Salve di nuovo a tutti. Sto tentando di capire come leggere una sola riga in un file di testo. Ho questo file:
4
1 -6 6 -4
7 18 6 2
13 2 3 7
-1 -4 3 7
K=7
E questo codice:
Devo leggere il valore K che si trova nella 6 riga del file (che in questo caso è 7, quindi dichiaro K intero e gli dovrei far leggere la sesta riga riportandomi il numero, sempre nella funzione leggi_mat) , per leggere il riempimento all'inizio del file non ho avuto problemi, ma non riesco a farlo in quest'altro caso. Ho letto in giro che bisognerebbe utilizzare la funzione getline, qualcuno mi può fare chiarezza su questo punto? Grazie in anticipo.codice:#include <iostream>#include <cstdlib> #include <fstream> using namespace std; int **leggi_mat(int**&mat, size_t& riemp, size_t& K) { ifstream dati("mat.txt"); dati >> riemp; mat = new int *[riemp]; for (int rig=0; rig<riemp; rig++) mat[rig] = new int [riemp]; for (int rig=0; rig<riemp; rig++) for (int col=0; col<riemp; col++) dati >> mat[rig][col]; return mat; } int **libera_memoria (int**&mat, size_t& riemp) { for (int rig=0; rig<riemp; rig++) delete [] mat[rig]; delete[] mat; } int main(void) { int **mat; size_t riemp; int K; leggi_mat(mat, riemp, K); for (int rig=0; rig<riemp; rig++){ for (int col=0; col<riemp; col++) cout << mat[rig][col] << '\t'; cout << endl; } cout << K; libera_memoria (mat, riemp); return 0; }
P.S. successivamente devo creare un vettore di strutture e salvare su file una matrice formata solo da elementi minori di 7, ma quello è semplice.
Grazie ancora a chiunque risponderà

Rispondi quotando