Fgets??? en langage C

Résolu
limbergh Messages postés 669 Statut Membre -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
j'ai un code ou je veux écrire des phrases et les afficher.
Ce code fonctionne très bien sans un switch mais avec celui-ci, ça boucle
et il ne m'inscris rien????????
Merci d'avance pour votre aide et je met mon code ci-après....

J'ai utilisé fgets pour écrire ma phrase, est-ce la mon erreur?

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>


int main(int argc, char *argv[])
{
int choix;  
char l[100], c[100]={0}; 
while(choix!=0)
{
printf("\n-1- affiche la question 1");
printf("\n-2- affiche la question 2");
printf("\n-2- affiche la question 3");
printf("\n votre choix=============>");
scanf("%d", &choix);

switch(choix)
{
case 1:

printf("salut,encode ta phrase : ");
fgets(l,100,stdin);

break;


case 2 :

printf("Ha ta phrase est %s", l);
break;

case 3 :

printf("je copie ta reponse dans une autre variable");
strcpy(c,l);
printf("%s", c);
break;
}

}
  getch();
  return 0;
}


Configuration: Windows XP
Firefox 2.0.0.12

6 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    N'oublie pas d'initialiser choix à -1 par exemple. Tu effectues une comparaison sans l'initialiser.
    Sinon, toujours le même problème, lorsque tu utilises scanf("%d",...), tu as le '\n' stocké dans le buffer clavier.
    Donc tu peux faire un fgetc(stdin); par exemple juste avant l'utilisation du fgets;

    Cordialement
    2
  2. limbergh Messages postés 669 Statut Membre 140
     
    salut mype et fiddy,
    par vos réflexions, j'ai trouvé mon erreur, enfin je pense,
    j'ai oublié de mettre la getchar(), c'est ça non?
    1
    1. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
       
      oui c'est ça ou fgetc(stdin) comme te la dit fiddy
      0
  3. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Oui, mais je t'avais dit tout ceci dans mon post n°1 !
    1
  4. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    ah limbergh toujours le meme probleme ;)
    c'est le '\n' qui pose probleme
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Lol mype, avec le temps, ça viendra ;)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. limbergh Messages postés 669 Statut Membre 140
     
    ok,
    merci pour vos réponses!!!! et votre patience (lol)
    0
  7. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    À tes ordres, et à la prochaine fois pour un '\n' ;)
    0