PDA

Visualizza la versione completa : C++ Leggere solo una riga da file di testo


DaemonDestroyer
13-06-2014, 17:00
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:

#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;




}

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.
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à

DaemonDestroyer
15-06-2014, 10:58
up

Scara95
15-06-2014, 11:48
Puoi considerarli 2 caratteri e un intero oppure utilizzare fscanf da <cstdio>

Loading