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...
Je serais toi j'indenterais mon code et utiliserait la balise <code> si je voulais des réponses
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.