Domanda

Come posso fare per sovrascrivere una linea specifica su un file di testo in c ?. Ho valori in più variabili che devono essere scritti sul file.

È stato utile?

Soluzione

Questo funziona solo quando la nuova linea ha le stesse dimensioni di quello vecchio:

  • Aprire il file nella modalità a+
  • fseek() per l'inizio del file
  • Prima di leggere la riga successiva, usare ftell() notare l'inizio della linea
  • Leggi la riga
  • Se è la linea che si desidera, fseek() ancora una volta con il risultato di ftell() e utilizzare fwrite() sovrascriverlo.

Se la lunghezza della linea cambia, è necessario copiare il file.

Altri suggerimenti

Da file (dal punto di vista della libreria standard di C) non sono line-oriented, ma sono solo una sequenza di caratteri (o byte in modalità binaria), non si può aspettare di modificarli a livello di linea di facilmente.

Come Aaron descritto, si può ovviamente sostituire i caratteri che compongono la linea se la sostituzione è esattamente lo stesso numero di caratteri.

È possibile anche (forse) inserire una sostituzione più corto di imbottitura con spazi bianchi alla fine (prima che il terminatore di linea). Questo è, naturalmente, un po 'grezzo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top