PDA

View Full Version : Ricerca tra stringhe in più file...


LukA4e
24-11-2004, 20:22
Ciao a tutti,
io ho questo problema:
ho 2 file contenenti delle stringhe (una sotto-l'altra), devo prendere una stringa alla volta del file A e cercare se nel file B c'è quella stringa, se c'è allora la stampa in un file.

vi posto qui di seguito il sorgente in c++ che ho fatto:

#include <fstream.h>
#include <iostream.h>
#include <string.h>

using namespace std;
int main()
{
string a,b;

fstream lista_a("listaA",ios::in);
fstream lista_b("listaB",ios::in);
fstream trovati("trovati",ios::out);

while(lista_a >> a) //finchè ci sono linee prendi la linea
{

cout << "Sto cercando: " << a << "...\n";

lista_b.seekg(0,ios::beg); //mi metto all'inizio del file lista_b

while(lista_b >> b)
{ cout << b << "\n";
if (a==b) { //se trova la stringa
cout << a << " Trovato!!!\n";
trovati << a << "\n"; //aggiunge la stringa al file trovati

}

}

}
lista_a.close();
lista_b.close();
trovati.close();
return 0;
}


Il fatto è che la prima stringa di lista_a viene cercata nel file lista_b e se la trova la aggiunge nel file trovati.
Quando sono finite le stringhe del file lista_b il programma giustamente cambia riga nel file lista_a però non trova più niente nel file lista_b.

Ho pensato: "Giusto! Perchè rimane alla fine del file lista_b e non trova niente!"

Allora ho usato lista_b.seekg(0,ios::beg) per posizionarmi all'inizio del file lista_b però non trova niente lo stesso....

Cosa può dipendere???

Vi prego aiutatemi...sto imparando il c++...

Grazie a tutti...
a chi mi aiuta c'è una sorpresina che vi dirò.... :D

cionci
24-11-2004, 20:34
Intanto cominciamo con il correggere gli include ;)

#include <fstream>
#include <iostream>
#include <string>

LukA4e
24-11-2004, 21:19
è la stessa cosa....
stesso problema

LukA4e
24-11-2004, 22:06
dai ragazzi.... è importante...

LukA4e
25-11-2004, 14:39
up...

forza programmatori!!!