[C++] Rubrica telefonica in c++

LukeFerrari

Nuovo Utente
16 Gen 2014
27
1
0
Devo creare una rubrica telefonica utilizzando la standard template library.
Se simulo una chiamata e poi torno al menù quando vado a far visualizzare la lista il compilatore salta la lettura del file e quindi non mi stamoa i numeri di telefono delle chiamate.

Non riesco a capire dove sbaglio mi potete aiutare? grazie
Questo il mio codice:

Codice:
                chiamateEff.clear();
                system("CLS");
                chiamateEffettuate.open("ChiamateEffetuate.txt");
                cout<<"\t\tChiamate effettuate"<<endl<<endl;
                while(!chiamateEffettuate.eof()){
                    getline(chiamateEffettuate,line);
                    cstr = new char [line.length()+1];
                     strcpy (cstr, line.c_str());
                      char * p = strtok (cstr,"\t\t/:");
                      while (p!=NULL){
                          //  cout << p << endl;
                            infoChiamateEff.push_back(p);
                            p = strtok(NULL,"\t\t/:");
                      }
                }
                for(int f=0;f!=infoChiamateEff.size();f=f+7){
                     c.numero=infoChiamateEff[f];
                     c.durata=infoChiamateEff[f+1];
                     c.giorno=atoi(infoChiamateEff[f+2]);
                     c.mese=atoi(infoChiamateEff[f+3]);
                     c.anno=atoi(infoChiamateEff[f+4]);
                     c.ora=atoi(infoChiamateEff[f+5]);
                     c.minuti=atoi(infoChiamateEff[f+6]);;
                    chiamateEff.push_back(c);
                }
                while(!rubrica.eof()){
                    //Si legge da file il numero e il nome del contatto e si inserisce nella classe
                    rubrica>>r.nome;
                    rubrica>>r.numero;
                    rubricaTelefonica[r.nome]=r.numero;
                }
                for(ce=chiamateEff.begin();ce!=chiamateEff.end();c  e++){
                    trovato=false;
                         for(it=rubricaTelefonica.begin();it!=rubricaTelefo  nica.end();it++){
                            if(ce->numero==it->second){
                              cout<< it->first<<" "<<ce->durata<<" "<<ce->giorno<<"/"<<ce->mese<<"/"<<ce->anno<<" "<<ce->ora<<":"<<ce->minuti<<endl;
                              trovato=true;
                              break;
                            }
                         }
                        if(!trovato){
                           cout<< ce->numero<<"(Sconosciuto)"<<" "<<ce->durata<<" "<<ce->giorno<<"/"<<ce->mese<<"/"<<ce->anno<<" "<<ce->ora<<":"<<ce->minuti<<endl;
                        }
               }
               delete[] cstr;
               chiamateEffettuate.close();
               cout<<endl<<"Vuoi tornare al menu'? y/n";
               cin>>ritorno;
               break;
 

Discussioni simili