rissorg
Messages postés6Date d'inscriptionmercredi 28 mai 2003StatutMembreDernière intervention23 juin 2003
-
28 mai 2003 à 17:41
roswell117
Messages postés61Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention18 novembre 2005
-
30 mai 2003 à 11:10
J'ai un probleme de recherche et de comparaison entre une string rentree au clavier et des donnees sur un fichier texte.
Voici mon source:
int main()
{
string ville;
string tab[80];
bool trouve;
int i, lg, j, k;
FILE * ptest_nom_ville;
cout<<"Rentrez le nom de la localite a rechercher"<<endl;
cin>>ville;
cout<<"la ville entree est : "<<ville<<endl;
if((ptest_nom_ville=fopen("ville.txt","r"))==NULL)
cout<<"erreur lors de l'ouverture du fichier text.txt"<<endl;
cout<<"test ouverture de ville.txt en lecture ok!!"<<endl;
i=0;
lg=0;
while( fscanf(ptest_nom_ville,"%s [^\n]",&tab[i])!=EOF)i++;
lg=i;
cout<<"lecture et enregistrement des données dans tab effectué"<<endl;
for(k=0;k<lg;k++)
cout<<tab[k]<<"\n";
cout<<endl;
while(1)
{
cout<<"Rentrez le nom de la localite a rechercher"<<endl;//saisie d'un
cin>>ville;
cout<<"la ville entree est : "<<ville<<endl;
trouve=false;
for(j=0;j<lg;j++)
{
if(tab[j]==ville)
{
trouve=true;
cout<<"la ville est dans le repertoire"<<endl;
}
if(!trouve)
cout<<"la ville n'est pa connu"<<endl;
}
}
system("PAUSE");
return 0;
}
mon fichier texte est:
Machilly
Bons en chablais
Annemasse
Annecy
Lyon
Paris
roswell117
Messages postés61Date d'inscriptionjeudi 31 janvier 2002StatutMembreDernière intervention18 novembre 2005 30 mai 2003 à 11:10
voici une solution à partir de ton code, pas mal modifié au niveau de la méthode de comparaison, mais ca a le mérite de fonctionner :
#include
#include<string>
#include <stdio.h>
using namespace std;
int main()
{
char ville[50];
char test[50];
bool trouve;
FILE * ptest_nom_ville;
cout<<"Rentrez le nom de la localite a rechercher"<<endl;
cin>>ville;
cout<<"la ville entree est : "<<ville<<endl;
if((ptest_nom_ville=fopen("ville.txt","r"))==NULL)
{
cout<<"erreur lors de l'ouverture du fichier text.txt"<<endl;
return 1;
}
cout<<"test ouverture de ville.txt en lecture ok!!"<<endl;
while(fscanf(ptest_nom_ville,"%s [^\n]",test)!=EOF)
{
if(strcmp(test, ville) == 0)
{
cout<<"la ville est dans le repertoire"<<endl;
trouve=true;
break;
}
}
if(trouve!=true)
cout<<"la ville n'est pas connue"<<endl;
return 0;
}