Fstream,problema in lettura

di il
6 risposte

Fstream,problema in lettura

Salve,sono alle prese con la fstream.
Volevo sapere se esiste un modo utilizzando questa libreria di leggere
una specifica riga di un file di testo, per esempio la riga numero 5.

se non esiste una funzione,potete indicarmi grosso modo come posso fare?

girando per il web ho trovato come scrivere e leggere ma non come spostarmi all'interno del file di testo.

grazie per qualsiasi aiuto!

6 Risposte

  • Re: Fstream,problema in lettura

    Scarta quattro e leggi la quinta dov'è il problema?
  • Re: Fstream,problema in lettura

    Vorrei accedere subito alla quinta,senza scandire il file,vorrei dirgli direttamente da quale riga iniziare a leggere.
  • Re: Fstream,problema in lettura

    E come fai a sapere qual'è la lunghezza delle righe precedenti?
  • Re: Fstream,problema in lettura

    Io ho un oggetto "iscritto" che ha in private 3 variabili string per il nome cognome e codice fiscale, e 2 variabili double per peso e altezza,
    in ogni riga del file, scrivo in ordine separandoli con uno spazio,
    nome,cognome,codicefiscale,altezza(dopo averlo convertito in una stringa) e peso(sempre dopo averla convertita in stringa) di un iscritto.
    posso sapere la dimensione di una riga facendo le string.length() di ogni stringa inserita piu gli spazi tra le righe forse.
    ma in ogni caso non sò a cosa serva.con i file di testo in c++ sono un pò scarsino.
  • Re: Fstream,problema in lettura

    Appunto perche non puoi sapere la lunghezza di una riga (perche è variabile) non puoi saltare subito alla quinta.
    La funzione c'è e si chiama seekg ma non sai di quanti byte spostarti. Per quello che la strada + sicura è quella di leggere e scartare le prime 4 righe.

    http://www.cplusplus.com/reference/iostream/istream/seekg/
  • Re: Fstream,problema in lettura

    Bene grazie,
    allora vedrò di dare una dimansione fissa alle righe per ogni iscritto e userò la seekg dandogli come parametro probabilmente la sizeoff di un iscritto che diventerà un record di cui posso conoscere la dimensione, moltiplicato per il numero di riga che voglio,partendo dall'inizio o dalla fine del file.
    Credo che fosse propio questa funzione quella che cercavo,grazie! faccio qualche modifica al programma e la provo al piu presto.
Devi accedere o registrarti per scrivere nel forum
6 risposte