PDA

View Full Version : [C] - Escludere il carattere CR con fwrite()


fpucci
05-07-2018, 08:11
Ho realizzato un piccolo programma che partendo da un file di testo (fgets) in input, lo splitti in n-files secondo un certo criterio e ricopiando pari pari le righe nel file di input in quello del file di output (fputs) secondo una certa selezione ma senza manipolazione del buffer. La scelta di fgets() in lettura è data dal fatto che devo leggere una riga per volta dal file di input e scriverla poi nel file di output.

Il problema è che nei file di output compare sempre la coppia CR+LF, nonostante che il file di input sia stato preventivamente ripulito dal carattere CR.

Come posso fare per fare in modo che in scrittura il carattere CR non sia presente?
Ho provato sia con fputs() che con fwrite(), ed i files sono creati con fopen("miofile.txt", "w");

Finora l'unico modo è stato quello di avvalermi dell'ausilio di un editor per sostituire i CR, ma i file sono centinaia e vorrei evitarmi questa noia...

british
05-07-2018, 11:34
Se ho capito bene, e immagino il tuo sistema operativo sia windows... devi aprire il file in modalità binaria (aggiungi "b" alla stringa mode della fopen).

fpucci
05-07-2018, 11:47
Se ho capito bene, e immagino il tuo sistema operativo sia windows... devi aprire il file in modalità binaria (aggiungi "b" alla stringa mode della fopen).

Perfetto, ha funzionato.
Grazie :)

P.S.
Si io lavoro su Windows ma il sistena su cui devono essere caricati i file è unix.