Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    C++ Leggere solo una riga da file di testo

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

  2. #2

  3. #3
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Puoi considerarli 2 caratteri e un intero oppure utilizzare fscanf da <cstdio>
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.