[C++] Modificare carattere in un file
Vorrei scrivere un programma che preso un file di testo del tipo
lo modifichi come
cioé che riscriva il rimando a capo.
Ma non saprei da dover partire per scriverlo. Qualche suggerimento su come pensarlo, almeno?
EDIT: in generale ho capito che non saprei modificare un carattere/intervenire all'interno di un file. Bene.
Ringrazio,
Giuseppe
quindi il modo migliore per polemizzare con i dis- ssidenti polemica —— seppure a tratti addirittura sferzante — sia per così dire relegata sullo sfondo, som- mersa da
lo modifichi come
quindi il modo migliore per polemizzare con i disssidenti polemica —— seppure a tratti addirittura sferzante — sia per così dire relegata sullo sfondo, sommersa da
cioé che riscriva il rimando a capo.
Ma non saprei da dover partire per scriverlo. Qualche suggerimento su come pensarlo, almeno?
EDIT: in generale ho capito che non saprei modificare un carattere/intervenire all'interno di un file. Bene.
Ringrazio,
Giuseppe
Risposte
Puoi iniziare a cercare nel testo il carattere '-' seguito da un carattere di a capo. Puoi provare a scrivere un programma che copia tutti i caratteri diversi da '-'. Se trova questo carattere verifica se il successivo carattere è uguale a '\n' e se lo è ignora entrambi i caratteri. In caso contrario copia entrambi i caratteri sul file. Direi che può essere un buon punto di partenza anche se forse non perfetto.
"apatriarca":
Puoi provare a scrivere un programma che copia tutti i caratteri diversi da '-'.
Si, ma la questione è che non riesco a modificare direttamente il file, ma al piû a farne solo una copia -il che, ok, è abbastanza facile.
Forse potrei provare con le regex!
http://www.cplusplus.com/reference/regex/match_replace/
Anche se rimane il problema di come riesca a sovrascrivere sul file la stringa modificata.
...domani vedo se riesco ad andare avanti in qualche modo.
http://www.cplusplus.com/reference/regex/match_replace/
Anche se rimane il problema di come riesca a sovrascrivere sul file la stringa modificata.
...domani vedo se riesco ad andare avanti in qualche modo.
Una possibile soluzione potrebbe essere la seguente:
1. Scrivere le modifiche in un nuovo file
2. Cancellare il file originale
3. Rinominare il nuovo file
In alternativa puoi anche leggere interamente il contenuto del file per poi sovrascriverlo con la nuova versione.Questa soluzione rischia tuttavia di danneggiare il file originario in caso di crash durante la scrittura.
1. Scrivere le modifiche in un nuovo file
2. Cancellare il file originale
3. Rinominare il nuovo file
In alternativa puoi anche leggere interamente il contenuto del file per poi sovrascriverlo con la nuova versione.Questa soluzione rischia tuttavia di danneggiare il file originario in caso di crash durante la scrittura.