Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Acquisizione di un grafo

    Salve a tutti,
    Ho necessità di estrarre dati da un file ed inserirli in un grafo.
    Il file ha il seguente formato: Torino Vercelli 2 A4 80 3 SS23 95 0

    2--->numero collegamenti
    A4---->ID strada
    80---->Km
    3---->pedaggio

    e la stessa struttura si ripete per SS23.

    Di seguito è riportato il frammento di codice.Qualcuno saprebbe spiegarmi perchè il programma non riesce a leggere i valori interi corrispondenti a lunghezza del tratto stradale e valore del pedaggio?
    In caso affermativo quale correzioni devo apportare?

    In attesa di risposte,
    Grazie a tutti.

    codice:
    GRAPH read_graph(char* filename){      
    
    FILE* fp=NULL;       
    char buff[MAX_LINE];     
    int n_colleg;     
    char localita1[MAX_LINE];     
    char localita2[MAX_LINE];     
    char id[MAX_LINE];     
    int lung;     
    int pedaggio;     
    int m, n=0;        
    GRAPH g=NULL;     
    NODO current_node=NULL;      
    
    
    if((fp=fopen(filename,"r"))==NULL)         
    printf("Errore in apertura del file.\n");       
    
    g=(GRAPH) calloc (1, sizeof(Graph));     
    g->graph_name = (char*)calloc((strlen(filename)+1),sizeof(char));    
     strcpy(g->graph_name, filename);      
    
    while(fgets(buff,MAX_LINE,fp)!=NULL){         
    m=0;         
    sscanf(buff,"%s %s %d %n",localita1,localita2,&n_colleg,&n);        
     current_node = search_node(g, localita1);          
    if (current_node == NULL)             
    current_node = insert_node(g, localita1);             
    current_node->visited = NON_VISITATO;           
    current_node = search_node(g, localita2);               
    current_node = insert_node(g, localita2);            
     current_node->visited = NON_VISITATO;           
    for(m+=(n);sscanf(buff+m,"%s %d %d %n",id,&lung,&pedaggio,&n)==3;m+=(n)){               insert_edge(g,current_node, localita2,id,&lung,&pedaggio);          
    }         
    }          
    return g; 
    }

  2. #2
    Per esattezza quello che ottengo dal run sono due valori prefissati che si ripetono in tutta la stesura del mio grafo sino alla fine,questo problema invece non lo ho sulla lettura dell'id stradale che viene eseguita correttamente.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.