Chercher un mot dnas un fichier
Bimoil
Messages postés
29
Statut
Membre
-
Bimoil Messages postés 29 Statut Membre -
Bimoil Messages postés 29 Statut Membre -
Hi, je tente de faire un programme qui demande a l'utilisateur d'entrer un mots et si le mots entrer se trouve dans un fichier txt le mot doit s'afficher. J'ai commencer, mais je n'arrive pas a terminer
ifstream fichier("Dossier.txt");
string recu = "Dossier.txt";
string lire;
if (fichier) {
while (fichier>> lecture);
}
else {
cout << "Introuvable";
}
A voir également:
- Chercher un mot dnas un fichier
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Fichier rar - Guide
- Creer un fichier .bat - Guide
3 réponses
Bonjour,
Pour rechercher si un mot est dans un fichier, il faut :
- parcourir toutes lignes du fichier
- rechercher si le mot est dans une de ces lignes.
Pour lire une ligne d'un fichier, il y a la fonction :
Pour chercher un mot dans une ligne ça dépend de la structure de la ligne. C'est immédiat si la ligne n'a qu'un seul mot :
Pour rechercher si un mot est dans un fichier, il faut :
- parcourir toutes lignes du fichier
- rechercher si le mot est dans une de ces lignes.
Pour lire une ligne d'un fichier, il y a la fonction :
std::getline(fichier, ligne_du_fichier);. Cette fonction a pour valeur de retour le fichier et si on le teste comme un booléen il indique
truetant que quelque chose à été lu, et
falsesinon. Pour lire toutes les lignes, on peut faire :
while ( std::getline(fichier, ligne_du_fichier) ) {
.... utiliser ligne_du_fichier ....
}
Pour chercher un mot dans une ligne ça dépend de la structure de la ligne. C'est immédiat si la ligne n'a qu'un seul mot :
if ( mot == ligne_du_fichier ) {
.... le mot été trouvé ....
}Sinon c'est un peu plus complexe...
Bimoil
Messages postés
29
Statut
Membre
Merci, simple question cela serait pas mieux d'y aller mot par mot ? Car il n'a pas seulement qu'un mot par ligne dans le fichier texte.
Je ne l'ai pas indiquée car c'est celle que tu as mise dans ton exemple!
bool le_mot_a_ete_trouve{}; // a priori n'a pas été trouvé
std::ifstream fichier("Dossier.txt");
if ( fichier ) {
std::string mot_du_fichier;
while ( fichier >> mot_du_fichier ) { // lecture d'un mot du fichier
if ( mot_a_chercher == mot_du_fichier ) {
le_mot_a_ete_trouve = true; // on a fini par le trouver
break; // inutile de continuer le parcours
}
}
}