Fgets??? en langage C

Résolu/Fermé
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 - 17 févr. 2008 à 16:57
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 17 févr. 2008 à 17:47
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;
}


A voir également:

6 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
17 févr. 2008 à 17:22
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
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 140
17 févr. 2008 à 17:36
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
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
17 févr. 2008 à 17:42
oui c'est ça ou fgetc(stdin) comme te la dit fiddy
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
17 févr. 2008 à 17:38
Oui, mais je t'avais dit tout ceci dans mon post n°1 !
1
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
17 févr. 2008 à 17:26
ah limbergh toujours le meme probleme ;)
c'est le '\n' qui pose probleme
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
17 févr. 2008 à 17:33
Lol mype, avec le temps, ça viendra ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 140
17 févr. 2008 à 17:46
ok,
merci pour vos réponses!!!! et votre patience (lol)
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 842
17 févr. 2008 à 17:47
À tes ordres, et à la prochaine fois pour un '\n' ;)
0