Ciao a tutti, martedì devo consegnare un progetto per l'esame di Fondamenti di programmazione, ma ho incontrato un problema insormontabile !!! Nel seguente codice devo caricare i dati da un file e salvarli in un
vector <elemento_grafo> mappa, dove elemento_grafo è così definito:
struct lista_adiacenti // elementi adiacenti
{ collegamento info;
lista_adiacenti* next; };
struct elemento_grafo// struttura degli elementi del grafo
{ string nome_citta;
int num_collegamenti;
lista_adiacenti* adiacente; }; // lista di adiacenti
Quando carico non riseco a implementare in modo giusto la lista, credo sia un problema di puntatori.
Vi prego aiutatemi, sono in crisi. Posto il codice della funzione:
void carica_mappa () //carica mappa dal file
{ ifstream (inf);
inf.open ("mappa.txt");
if (inf.fail()) throw 4;
string citta1,citta2,t;
int num_coll,h,m;
float costo,lungh;
while (!inf.eof()) {
inf>>ws;
getline(inf,citta1);
if(inf.fail()) break;
inf>>num_coll;
elemento_grafo temp;
temp.nome_citta = citta1;
temp.num_collegamenti = num_coll;
temp.adiacente = NULL;
for (int j=0; j<num_coll; j++)
{ inf>>ws;
getline (inf,citta2);
inf>>lungh;
inf>>ws;
getline(inf,t);
inf>>costo;
inf>>h;
inf>>m;
collegamento c = collegamento :: collegamento(citta2,lungh,t,costo,h,m);
lista_adiacenti* tmp = new lista_adiacenti;
tmp->info = c;
tmp->next = temp.adiacente;
temp.adiacente = tmp;}
mappa.push_back (temp);
}
return ; }