Recherche et comparaison dans fichier

Signaler
Messages postés
6
Date d'inscription
mercredi 28 mai 2003
Statut
Membre
Dernière intervention
23 juin 2003
-
Messages postés
61
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
18 novembre 2005
-
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

Messages postés
61
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
18 novembre 2005

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