j | e | s | u | i | s | u | n | p | r | o | g | r | a | m | m | e | u | r | ‘\0’ |
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
void rechercherDansFichier(char chaine[])
{
ifstream monFlux("C:/test.txt");
if(monFlux)
{
int i=0,position=0;
//La lecture se fait par caractère
monFlux.clear();
//initialiser la tete de lecture de 0
//ios::beg : commencer de début
monFlux.seekg(0, ios::beg);
char c;
//tant que ce n'est pas la fin de fichier
while(monFlux.get(c))
{
//incrémenter la position de la tete de lecture
position++;
//si le caractère correspond au caractère de la
//chaine recherchée dans la position i
//alors passer au caractère suivant
if(c==chaine[i]){
i++;
//si toutes les caractères de la chaine sont
//vérifiés alors on a trouvé la chaine dans
//le fichier
if(i==strlen(chaine)) //strlen : retourne la longueur de la chaine
printf("La chaine recherchée est dans la position : %d "
"et termine à la position %d\n", position-strlen(chaine),position);
}
//sinon si on trouve un seul caractère
//qui ne correspond pas alors
//redémarer de 0
else
i=0;
}
}
else
printf("Impossible d'ouvrir le fichier\n");
}
int main()
{
char chaine[]="un programmeur";
rechercherDansFichier(chaine);
system("pause");
}
Please disable your ad blocker and refresh the window to use this website.