C : lire un caractère
Sara426
Messages postés
782
Statut
Membre
-
juice92 Messages postés 48 Statut Membre -
juice92 Messages postés 48 Statut Membre -
Bonjour,
Je programme en C.
J'aimerais que l'utilisateur entre un caractère et si c'est 1 ou 2 alors le programme rentre dans le switch.
Mon programme ressemble à peu près à ça :
int u;
scanf("%d", &u);
while((u!=1)&&(u!=2))
printf("* Mauvaise saisie *\n
scanf("%d", &u);
switch(u)
{case 1: ..........
Ca marche très bien pour tous les nombres, seulement dès que je rentre une lettre ça boucle indéfiniment.
Je ne connais pas très bien le scanf alors est-ce quelqu'un pourrait m'aider ?
Merci.
Cordialement,
Sara.
Je programme en C.
J'aimerais que l'utilisateur entre un caractère et si c'est 1 ou 2 alors le programme rentre dans le switch.
Mon programme ressemble à peu près à ça :
int u;
scanf("%d", &u);
while((u!=1)&&(u!=2))
printf("* Mauvaise saisie *\n
scanf("%d", &u);
switch(u)
{case 1: ..........
Ca marche très bien pour tous les nombres, seulement dès que je rentre une lettre ça boucle indéfiniment.
Je ne connais pas très bien le scanf alors est-ce quelqu'un pourrait m'aider ?
Merci.
Cordialement,
Sara.
2 réponses
Normal que ça boucle pour une lettre. Il faut vider le buffer clavier après tes scanf. Pour commencer, mets un simple getchar(). Si tu as besoin que ça ne plante pas même si l'utilisateur rentre une vraie phrase alors dis-le et on te fera un programme plus robuste.
Cdlt,
Cdlt,
Une lettre est une chaine de caractère, alors %d ( pour double ) ou %f ( pour float ) ne marchera pas.
je ne me rappel plus trés bien mais si une chaine de caractère se déclare string alors ce sera %s
je ne me rappel plus trés bien mais si une chaine de caractère se déclare string alors ce sera %s