<div dir="ltr">Ti potrei consigliare di <div><br></div><div>a) leggere la riga con una fgets</div><div style>b) usare la sscanf al posto della fscanf</div><div style><br></div><div style>come in [1]. Qui è più semplice essere sicuri di cosa si va a processare.</div>
<div style><br></div><div style>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.</div><div style><br></div>
<div style>Fabrizio</div><div style><br></div><div style>[1] <a href="http://stackoverflow.com/questions/861793/trouble-reading-a-line-using-fscanf">http://stackoverflow.com/questions/861793/trouble-reading-a-line-using-fscanf</a></div>
<div style>[2] <a href="http://it.wikipedia.org/wiki/Scanf">http://it.wikipedia.org/wiki/Scanf</a></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">Il giorno 12 giugno 2013 15:43, Alessandro Marzini <span dir="ltr"><<a href="mailto:alessandro.marzini@gmail.com" target="_blank">alessandro.marzini@gmail.com</a>></span> ha scritto:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Mettiamo alla prova i gullisti programmatori di C<div><br></div><div>devo scrivere un piccolo programma che mi prenda un file di testo cosi fatto:</div>
<div><br></div><div><div>111792;AFGHANISTAN;Areeba Mobile;93;77</div>
<div>125426;AFGHANISTAN;AT Mobile;93;75,78,89</div><div>124225;AFGHANISTAN;AWCC Mobile;93;70</div><div>123768;AFGHANISTAN;Etisalat Mobile;93;78</div><div>2;AFGHANISTAN;Other;93;</div><div>111793;AFGHANISTAN;Roshan Mobile;93;72,79</div>
<div>129491;ALBANIA;OLO;355;4249,4250,4251,4252</div><div><br></div><div>e devo riorganizzarlo cosi:</div><div><br></div><div><div>111792;AFGHANISTAN;Areeba Mobile;9377</div><div>125426;AFGHANISTAN;AT Mobile;9375</div>
<div>125426;AFGHANISTAN;AT Mobile;9378<br></div><div>125426;AFGHANISTAN;AT Mobile;9389<br></div><div><div>124225;AFGHANISTAN;AWCC Mobile;9370</div><div>123768;AFGHANISTAN;Etisalat Mobile;9378</div><div>2;AFGHANISTAN;Other;93;</div>
</div><div>111793;AFGHANISTAN;Roshan Mobile;9372<br></div><div>111793;AFGHANISTAN;Roshan Mobile;9379<br></div><div>129491;ALBANIA;OLO;3554249<br></div><div>129491;ALBANIA;OLO;3554250<br></div><div>129491;ALBANIA;OLO;3554251<br>
</div><div>129491;ALBANIA;OLO;3554252<br></div><div><br></div><div>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.</div>
<div><br></div><div>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.</div>
<div><br></div><div>Estratto del codice:</div><div><br></div><div><a href="http://codepad.org/YaolFNjB" target="_blank">http://codepad.org/YaolFNjB</a><br></div><div><br></div><div>Se qualcuno ha voglia..</div>
<div><br></div><div>Grazie</div></div></div></div>
<br>--<br>
Mailing list info: <a href="http://lists.linux.it/listinfo/gulli" target="_blank">http://lists.linux.it/listinfo/gulli</a><br>
Pagina web del GULLI: <a href="http://www.livorno.linux.it" target="_blank">www.livorno.linux.it</a><br></blockquote></div><br></div>