Voici ma fonction. Elle prend en argument un caractere. A partir de ce caractere, elle renvoie la chaine qui lui est associe.
Par exemple:
"fichier_langue.txt":
'a anglais
f francais...'
on passe f en argument et la fonction nous renvoie francais.
Mon probleme est au moment du renvoie de 'chaine' qui contient la chaine a renvoyer(ex:francais). Quand j'affiche a la fin de la fonction le contenu de 'chaine', la fonction m'indique bien "francais".Mais une fois retournee, quand je l'affiche dans le main(), ca ecrit n'importe quoi!!!
Si vous avez une solution, merci de m'en faire part car je deprime completement. Je suis a deux doigtsde balancer ma becanne contre un mur!
Merci d'avannce
kobee12
char* ChoisirLangue(char langue)
{
char msg[30];
char L;
char *chaine;
FILE * fic;
char* nom = "fichier_langue.txt";
/* Ouverture d'un fichier */
fic = fopen(nom, "r");
if (fic == NULL) {
fprintf(stderr, "Error : %s %s\n", nom, strerror(errno));
exit(-1);
}
rewind (fic); //repositionnement en debut de fichier
do
{
fgets(msg, sizeof(msg), fic); //saisie de toute une ligne du fichier
sscanf(msg,"%c %[^\n]%s\n", &L, chaine); decoupage de la ligne saisie
if(L == langue)
{
fclose(fic);
printf("chaine:%s %d.\n",chaine,strlen(chaine));
return chaine; //pb:mauvais retour de chaine
}
}while(!feof(fic)); //retourne une valeur non nulle si en fin de fichier
fclose(fic);
return "0";
}