j'ai donc décidé de reprendre tous mes codes et de remplacer tous mes scanf par des fgets. je suis en train d'écrire un traducteur anglais-français (enfin, modeste). or j'ai un souci avec l'utilisation de fgets:
la fonction printf("%s",choix) me renvoie bien "n" ou "o", mais la boucle if m'écrit toujours "réponse non valide".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 char choix[3] .... while (k==0) { printf("\nvoulez-vous ajouter un autre mot ? o/n : "); if (fgets (choix, sizeof choix, stdin) != NULL) { char *p = strchr (choix, '\n'); if (p){*p = 0;}} printf("%s",choix); /* rajouté pour essayer de comprendre*/ if (choix=="n") {printf("implémentation terminée");fclose(base);k=1;fin=1;} else if (choix=="o") k=1; else {printf("erreur : réponse non valide !\n");k=0;} }
quelqu'un a une idée ?
j'ajouterais que quand je lui demande
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 printf("choix 0 \'%c\' choix 1 \'%c\' choix 2 \'%c\'",choix[0],choix[1],choix[2]);[quote] il m'écrit: '0' ' ' ' ' . je ne comprends pas.[/quote]
Partager