File txt lettura/scrittura determinata riga

di il
5 risposte

File txt lettura/scrittura determinata riga

Buon giorno raga!
Vorrei sapere in C++ come si fa a leggere/scrivere una determinata riga in un file txt. E poi vorrei sapere come si fa ad aggiungere una frase presa in getline() nella prima riga libera disponibile. Ad esempio se la quinta riga è libera, la frase presa in getline() viene scritta lì.

5 Risposte

  • Re: File txt lettura/scrittura determinata riga

    Usi fgets() su un buffer sufficientemente grande e ignori le (n -1) letture prima di arrivare alla riga che ti serve
    La sovrascrittura (se intendi quello e non devi fare semplicemente un append) è complicata: o hai abbastanza spazio (la nuova riga è di dimensione minore o uguale alla precedente, oppure sono stati aggiunti preventivamente dei caratteri nulli al file originario in previsione di modifiche future), oppure ti conviene scrivere da capo un nuovo file, buttare via quello vecchio e rinominare quello nuovo
  • Re: File txt lettura/scrittura determinata riga

    Riusciresti a farmi un esempio? perchè così a parole non è facile. Grazie
  • Re: File txt lettura/scrittura determinata riga

    Prova tu a scrivere un codice di esempio che legga tutto il file e poi se ne parla

    Ma poi che intendi con "linea libera"?
  • Re: File txt lettura/scrittura determinata riga

    oregon ha scritto:


    Prova tu a scrivere un codice di esempio che legga tutto il file e poi se ne parla

    Ma poi che intendi con "linea libera"?
    C'è l'ho fatta! bastava usare un flag! me ne ero completamente dimenticato!
    In sostanza "linea libera" intendevo un esempio così:
    frase 1
    frase 2
    frase 3
    *linea libera dove scrivo frase 4*

    Comunque il flag era fstream::app (che in sostanza va alla fine del file). Perciò ho fatto così:
    file.open(fileName, fstream::out | fstream::app);

    ecco il link dei flag per fstream: http://www.cplusplus.com/reference/fstream/fstream/open/
    Però essendo un c++ un po' vecchio, per chi usa dev 5.11, per fare funzionare il flag devi andare: Tool > Compiler option... > settings > Code generation > Languege standard > e impostare GNU C++ 11
    e funziona!
    Spero possa servire a chiunque legga!
  • Re: File txt lettura/scrittura determinata riga

    Quindi intendevi scrivere "alla fine del file" in "append" ... bastava dirlo chiaramente. Del resto Weierstrass te l'aveva detto nella prima risposta ...
Devi accedere o registrarti per scrivere nel forum
5 risposte