[Gulli] C-onoscete il C?

Daniele Forsi dforsi@gmail.com
Mer 12 Giu 2013 23:00:58 CEST


Il 12 giugno 2013 15:43, Alessandro Marzini ha scritto:

> devo scrivere un piccolo programma che mi prenda un file di testo cosi
> fatto:

> 2;AFGHANISTAN;Other;93;

> e devo riorganizzarlo cosi:

> 2;AFGHANISTAN;Other;93;

è giusta? questa è l'unica riga riorganizzata che finisce con un punto e virgola

> Il mio problema è che se uso la fscanf, l'ultimo ciclo mi prende anche il
> valore della riga successiva, cioe' non riesco a dire alla fscanf di
> fermarsi quando arriva a fine riga.

fscanf ignora un sacco di cose tra cui i caratteri di fine riga e non
gestisce volentieri i campi vuoti come quella riga che ho citato sopra
che finisce con punto e virgola, da cui il consiglio di Fabrizio di
usare fgets+sscanf (ma comunque avresti il problema degli spazi
all'interno delle parole, insomma scanf() e  famiglia sono poco utili
al di fuori dei libri di scuola)

> Estratto del codice:
>
> http://codepad.org/YaolFNjB

guarda se questo ti è utile
http://codepad.org/iQAy1mQ8
non spezza le righe come nel tuo codice, ma le righe di esempio
vengono trasformate così:
111792;AFGHANISTAN;Areeba Mobile;9377
125426;AFGHANISTAN;AT Mobile;9375
125426;AFGHANISTAN;AT Mobile;9378
125426;AFGHANISTAN;AT Mobile;9389
124225;AFGHANISTAN;AWCC Mobile;9370
123768;AFGHANISTAN;Etisalat Mobile;9378
2;AFGHANISTAN;Other;93
111793;AFGHANISTAN;Roshan Mobile;9372
111793;AFGHANISTAN;Roshan Mobile;9379
129491;ALBANIA;OLO;3554249
129491;ALBANIA;OLO;3554250
129491;ALBANIA;OLO;3554251
129491;ALBANIA;OLO;3554252

-- 
Daniele Forsi


Maggiori informazioni sulla lista Gulli