09/07/09 6:43
Pierga
Sto scrivendo questa semplice rubrica telefonica. L'inserimeto dei dati è ok, così pure la funzione cerca. Quello che non riesco a fare è la funzione cancella.
Io l'avevo pensata in questo modo: prima il programma chiede il parametro di ricerca, e scorre tutta la rubrica. Quando trova la linea corrispondente la deve cancellare.
Cosa c'è che non va? Grazie a chiunque risponda, sto impazzendo!
Io l'avevo pensata in questo modo: prima il programma chiede il parametro di ricerca, e scorre tutta la rubrica. Quando trova la linea corrispondente la deve cancellare.
... if (i==3) { string line, obiettivo; //Diachiarazione delle due stringhe size_t found; //Richiamo funzione "found" per trovare un testo string::iterator it; fstream myfile;//fstream per leggere e scrivere su myfile myfile.open ("Rubrica.txt"); //File aperto per operazioni //di input o output cout<<"Inserire contatto: "; cin>>obiettivo; //Ciò che si scrive viene salvato nella string obiettivo cout<<endl<<endl; while (! myfile.eof() ) //.eof restituisce vero quando il file di testo //è arrivato alla fine { getline (myfile,line); //Dà alla string line ciò che è scritto nella riga found=line.find(obiettivo); //Cerca in line ciò che scritto in obiettivo if (found!=string::npos) { //se lo trova stampa line ovvero il contatto che sta per cancellare. Poi assegna a //line " " e dovrebbe sovrascriverlo. Ma qui si blocca... cout<<line<<endl; line=" "; myfile << line; } } myfile.close(); }
Cosa c'è che non va? Grazie a chiunque risponda, sto impazzendo!
aaa