Salve a tutti,
per esercitarmi stavo creando un piccolo programma per la gestione di una rubrica (aggiungere num, modificare, ricerca per cognome, ecc).
Mi sono completamente bloccata alla ricerca per cognome,nel momento in cui vado a cercare per cognome mi ridà il menù senza darmi i risultati di ricerca.
Non sto riuscendo a capire dove possa essere il problema, se potete darmi qualche dritta ve ne sarei grata.
CODICE:
codice:#include<iostream> #include<fstream> using namespace std; void nuovo(); void cerca (); class persona { public: string nome=""; string cognome=""; string numTel=""; }; int main() { int scelta; do { cout<<"1.Nuovo Contatto\n"; cout<<"2.Modifica\n"; cout<<"3.Elimina\n"; cout<<"4.Cerca per cognome\n"; cout<<"5.Stampa\n"; cout<<"6.Elimina tutta rubrica\n\n"; cout<<"9.Esci\n"; cout<<"\nOperazione da eseguire:\n"; cin>>scelta; switch(scelta) { case 1: nuovo(); break; case2: break; case 3: break; case 4: cerca(); break; case 5: break; case 6: break; case 9: break; default: { cout<<"Scelta non valida!\n"; } break; } }while(scelta!=9); } void nuovo() { ofstream salva; //scrittura file salva.open("rubrica.txt",ios::app); persona p; cout<<"Nome:\n"; cin>>p.nome; cout<<"Cognome:\n"; cin>>p.cognome; cout<<"Numero telefonico: \n"; cin>>p.numTel; salva<<p.nome<<endl; salva<<p.cognome<<endl; salva<<p.numTel<<endl; salva.close(); } void cerca () { ifstream leggi; leggi.open("rubrica.txt"); ofstream posizioni ("posizioni.txt"); int posizione=0; string cognomeCercato=""; cout<<"Che cognome devo cercare?\n"; cin>>cognomeCercato; while(!leggi.eof()) { persona p; leggi >> p.cognome; leggi >> p.nome; leggi >> p.numTel; posizione++; if(p.cognome==cognomeCercato) { cout << "Trovato nella posizione"<< posizione << endl; cout<<"\nNome:"<<p.nome<<endl; cout<<"\nNum Tel:"<<p.numTel<<endl; cout<<"------------------------------------\n"; posizioni<<posizione<<endl; } } leggi.close(); posizioni.close(); }