Retour fonction
Résolu
Bonjour,
Je suis en train d'écrire une fonction qui demande de faire un choix à l'utilisateur et le renvoie.
Le problème est que la variable
Code :
Merci pour votre aide,
hcp7kuz
Je suis en train d'écrire une fonction qui demande de faire un choix à l'utilisateur et le renvoie.
Le problème est que la variable
resultn'est pas affichée en dehors de la boucle while.
Code :
int main() {
printf("Reponse : %s\n", demandeUtilisateur(2, "Bonjour ou Bonsoir ?", "Bonjour", "Bonsoir")); // n'affiche que "Reponse : "
return 0;
}
char* lireChaine(int longueur) {
char *positionEntree = NULL;
char *chaine = NULL;
chaine = malloc(longueur * sizeof(char));
if (fgets(chaine, longueur, stdin) != NULL) {
positionEntree = strchr(chaine, '\n');
if (positionEntree != NULL)
*positionEntree = '\0';
}
return chaine;
}
char* demandeUtilisateur(int nombreChoix, char* message, ...) {
int reponseCorrect = -1;
char* reponse[MAX_LENGTH];
while(reponseCorrect) {
printf("%s", message);
char* reponse[MAX_LENGTH];
strcpy(reponse, lireChaine(MAX_LENGTH));
printf("%s\n", reponse); // affiche bien la réponse
va_list ap;
va_start(ap, nombreChoix);
int i;
for (i = 0; i < nombreChoix; i++) {
if (!strcmp(reponse, va_arg(ap, char*)))
reponseCorrect = 0;
}
if (reponseCorrect) {
printf("Reponse incorect.\n");
reponseCorrect--;
}
va_end(ap);
}
printf("%s\n", reponse); // n'affiche rien
return reponse;
}
Merci pour votre aide,
hcp7kuz
1 réponse
-
Bonjour hcp7kuz,
T'as variable :char* reponse[MAX_LENGTH];
est déclaré autant en dehors de ta boucle « while » qu'à l'intérieur, peut-être qu'elle devrai être déclaré uniquement à l'extérieur.-
-
-
@DalfabD'accord, c'est noté :)
-