Recherche et comparaison dans fichier

rissorg Messages postés 6 Date d'inscription mercredi 28 mai 2003 Statut Membre Dernière intervention 23 juin 2003 - 28 mai 2003 à 17:41
roswell117 Messages postés 61 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 18 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:

#include
#include<string>
#include <stdlib.h>
#include <stdio.h>

using namespace std;

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

J'attend vos reponse ,merci d'avance.

1 réponse

roswell117 Messages postés 61 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 18 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;
}
0
Rejoignez-nous