Il mio programma deve cercare una parola in un file di testo e, se trova tale parola, stampare/visualizzare l'intera riga. Esempio:Come cercare una parola in un file di testo e se trovato stampare l'intera riga
employee name date joined position project annual salary tom jones 1/13/2011 accountant pricing 55000 Susan lee 2/5/2007 Manager policy 70000
utente inserisce una parola di ricerca:
contabile
Programma ricerche di testo per accountant
. Quando lo trova, restituisce quanto segue:
employee name date joined position project annual salary tom jones 1/13/2011 accountant pricing 55000
Questo è il codice che è venuto fuori ma non funziona.
void KeyWord(ifstream &FileSearch)
{
string letters;
int position =-1;
string line;
ifstream readSearch;
cout<<"enter search word ";
cin>>letters;
"\n";
FileSearch.open("employee");
if(FileSearch.is_open())
{
while(getline(FileSearch, line))
{
FileSearch>>line;
cout<<line<<endl;
position=line.find(letters,position+1);
if(position==string::npos);
if(FileSearch.eof())
break;
cout<<line<<endl;
}
}
cout<<"Cant find"<<letters<<endl;
}
grazie Ci proverò ora e ripubblicherò i risultati, o i quesitons .. Sto indovinando dove hai la parola token..Im andando a sostituire con le lettere .. dove ottengo input dall'utente ..? – Darius
aggiornato da quando ho appena notato un bug. L'istruzione if dovrebbe avere un! = String :: npos. E sì basta sostituire il token di stringa con quello che stai cercando (ragioniere nel tuo esempio) – Kevin
puoi mostrarmi dove posizionare il! = String :: npos ... – Darius