Partage
  • Partager sur Facebook
  • Partager sur Twitter

Systeme de fichier

trouver un texte dans un fichier

Anonyme
    15 janvier 2006 à 16:17:40

    J'aimerais créer une fonction qui cherche un texte-passé en argument- dans un fichier texte(.ini), et qui renvoie un texte précisé dans le fichier texte.
    Exemple :
    Le fichier .ini contient cette ligne :
    Salut --> Ca va?
    Si on rentre Salut, le programme nous répond Ca va?

    Mais j'ai quelques erreurs lors de la compilation , voici mon code :
    [code type="c++']
    char lire(char texte_cherche)
    {
    FILE* fichier;
    fichier = fopen("fichier.ini","r");
    char *chaine;
    chaine = new char [512];
    fread(chaine,sizeof(char),512,fichier);
    //pour reperer le texte entré dans le fichier ini
    int i =0;
    while (i<strlen(chaine))//on cherche la question dans le fichier
    {
    if (chaine[i]==texte_cherche[i])//quand on l'a trouvé(la première lettre), on stoppe le boucle
    { //Ici, une erreur : "invalid types 'char[int]' for array subscript
    break;
    }
    i++;
    }
    int i3=i;
    char question[256];
    //pour reperer le -->
    int i2=0;
    while(i2<strlen(chaine))//quand on l'a trouvée, on stoppe la boucle et garde l'index du caractère dans i2
    {
    question[i2]=chaine[i];
    if ((chaine[i2]=="-")&&(chaine[i2+1]=="-")&&(chaine[i2+2]==">"))
    { //Autre erreur : ISO C++ forbids comparison between pointer and integer
    break; // Cette erraur est présente 3 fois lors de la compilation
    }
    i2++;
    i++;

    }
    char reponse[256];
    if (question==texte_cherche)//si c'est la bonne question,on enregistre la reponse
    { //Meme erreur : ISO C++ forbids comparison between pointer and integer
    i=0;
    while(reponse[i]!="\n")//Meme erreur :Iso C++........
    {
    reponse[i]=chaine[i3];
    i++;
    i3++;
    }

    }
    /*et voila le log :(6 erreurs)
    Compilateur: Default compiler
    Building Makefile: "C:\Mes Documents\Programmation\C-C++\-c++\Makefile.win"
    Exécution de make...
    make.exe -f "C:\Mes Documents\Programmation\C-C++\-c++\Makefile.win" all
    g++.exe -c parlotrons.cpp -o parlotrons.o -I"C:/DEV-CPP/lib/gcc/mingw32/3.4.2/include" -I"C:/DEV-CPP/include/c++/3.4.2/backward" -I"C:/DEV-CPP/include/c++/3.4.2/mingw32" -I"C:/DEV-CPP/include/c++/3.4.2" -I"C:/DEV-CPP/include"

    parlotrons.cpp: In function `void lire(char)':

    parlotrons.cpp:26: error: invalid types `char[int]' for array subscript

    parlotrons.cpp:39: error: ISO C++ forbids comparison between pointer and integer

    parlotrons.cpp:39: error: ISO C++ forbids comparison between pointer and integer
    parlotrons.cpp:39: error: ISO C++ forbids comparison between pointer and integer
    parlotrons.cpp:48: error: ISO C++ forbids comparison between pointer and integer
    parlotrons.cpp:51: error: ISO C++ forbids comparison between pointer and integer

    Exécution terminée


    */

    return reponse; //ici, je ne sais pas commen retourner la valeur de reponse
    }


    [/code]

    En fait, c'est la meme erreur quesi pertout, mais j'ai essayé tout ce que je pouvais, et je n'arrive pas a trouver...
    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2006 à 18:09:58

      Je serais toi j'indenterais mon code et utiliserait la balise <code> si je voulais des réponses :-°
      • Partager sur Facebook
      • Partager sur Twitter

      Systeme de fichier

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown