utilisation de fgets: une question
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:
Code:
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;}
} |
la fonction printf("%s",choix) me renvoie bien "n" ou "o", mais la boucle if m'écrit toujours "réponse non valide".
quelqu'un a une idée ?
j'ajouterais que quand je lui demande
Code:
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] |
Re: utilisation de fgets: une question
Citation:
Envoyé par artatum
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:
Je conseille de construire une fonction de lecture de ligne solide et fiable à partir de fgets() (ou de fgetc())
[C'est ça qu'on devrait apprendre à faire dans les cours de C pour débutant...]
Citation:
Code:
1 2 3 4 5 6 7 8
| 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;}} |
Ok, au moins tu as lu la doc...
Citation:
printf("%s",choix); /* rajouté pour essayer de comprendre*/
if (choix=="n")
ben non.
ou
Code:
if (strcmp (choix), 'n') == 0)