PDA

View Full Version : [C] - Problema acquisizione dati da file


Matt_92
24-08-2012, 12:37
Salve a tutti, sono nuovo del forum e spero di trovarmi bene qui con voi. ;) ;)

Il mio problema riguarda l'acquisizione da file di più dati, riesco ad acquisire tutti i dati solo che non sono nella posizione giusta e alcuni vengono acquisiti più volte.
Il file è di questo tipo:

5
2
Berlino Valencia 300 3.2
Berlino New_York 475 5.2
3
New_York Valencia 600 5.6
NeW_York Tokyo 700 6.7
New_York Bologna 550 5.0
2
Tokyo Berlino 800 9.0
Tokyo New_York 600 6.7
2
Bologna Valencia 170 2.0
Bologna Berlino 250 4.2
3
Valencia Bologna 150 2.0
Valencia Berlino 250 3.2
Valencia New_York 650 5.6


sono valori riguardanti partenze e arrivi in aeroporti.

ecco il codice:
if (dati_voli == NULL)
printf("errore nell'apertura del file\n");
else
{
fscanf(dati_voli,"%d", /*acquisisce il numero di aeroporti*/
&grafo.numero_vertici);

while(feof(dati_voli) == 0)
{
fscanf(dati_voli,"%d", /*numero di percorsi*/
&numero_tratte);
for (i = 0; (i < numero_tratte); i++)
{
fscanf(dati_voli,"%s",
&città_partenza.nome_città);
fscanf(dati_voli,"%s",
&città_arrivo.nome_città);
fscanf(dati_voli,"%d",
&collegamento_aeroporto.costo);
fscanf(dati_voli,"%lf",
&collegamento_aeroporto.tempo);

printf("%s\n",
città_partenza.nome_città);
printf("%s\n",
città_arrivo.nome_città);
printf("%d\n",
collegamento_aeroporto.costo);
printf("%lf\n",
collegamento_aeroporto.tempo);


quello che dovrebbe restituire tramite printf è la città di partenza, la città di arrivo, costo del volo (int) e ore di volo (double) di ogni tratta. Mentre mi ripete più volte del dovuto l'ultima acquisizione