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
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