[Gulli] C-onoscete il C?

Fabrizio Carrai fabrizio.carrai@gmail.com
Mer 12 Giu 2013 19:25:04 CEST


Oh...ma se ha chiesto di correggere un programma in "C" perchè dovete
 farglielo fare in un altra maniera ?!


Il giorno 12 giugno 2013 19:22, Fabrizio Carrai
<fabrizio.carrai@gmail.com>ha scritto:

> Ti potrei consigliare di
>
> a) leggere la riga con una fgets
> b) usare la sscanf al posto della fscanf
>
> come in [1]. Qui è più semplice essere sicuri di cosa si va a processare.
>
> Ma principalmente ti consiglio di considerare il valore di ritorno della
> fscanf() [2]: se è diverso dal numero di campi che ti aspetti fai un break
> ed esci dal loop.
>
> Fabrizio
>
> [1]
> http://stackoverflow.com/questions/861793/trouble-reading-a-line-using-fscanf
> [2] http://it.wikipedia.org/wiki/Scanf
>
>
> Il giorno 12 giugno 2013 15:43, Alessandro Marzini <
> alessandro.marzini@gmail.com> ha scritto:
>
>> Mettiamo alla prova i gullisti programmatori di C
>>
>> devo scrivere un piccolo programma che mi prenda un file di testo cosi
>> fatto:
>>
>> 111792;AFGHANISTAN;Areeba Mobile;93;77
>> 125426;AFGHANISTAN;AT Mobile;93;75,78,89
>> 124225;AFGHANISTAN;AWCC Mobile;93;70
>> 123768;AFGHANISTAN;Etisalat Mobile;93;78
>> 2;AFGHANISTAN;Other;93;
>> 111793;AFGHANISTAN;Roshan Mobile;93;72,79
>> 129491;ALBANIA;OLO;355;4249,4250,4251,4252
>>
>> e devo riorganizzarlo cosi:
>>
>> 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
>>
>> In pratica e' un listino prezzi dove pero' mi hanno messo i prefissi per
>> una certa destinazione tutti insieme in una cella separati da virgola,
>> invece io devo averi riga per riga come scritto.
>>
>> 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.
>>
>> Estratto del codice:
>>
>> http://codepad.org/YaolFNjB
>>
>> Se qualcuno ha voglia..
>>
>> Grazie
>>
>> --
>> Mailing list info: http://lists.linux.it/listinfo/gulli
>> Pagina web del GULLI: www.livorno.linux.it
>>
>
>
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.linux.it/pipermail/gulli/attachments/20130612/85894616/attachment.html>


Maggiori informazioni sulla lista Gulli