Programme simple en C avec variable "char" qui ne fonctionne pas
Résolu/Fermé
maxime121294
Messages postés
13
Date d'inscription
samedi 25 août 2012
Statut
Membre
Dernière intervention
5 février 2014
-
21 oct. 2012 à 16:02
maxime121294 Messages postés 13 Date d'inscription samedi 25 août 2012 Statut Membre Dernière intervention 5 février 2014 - 21 oct. 2012 à 23:20
maxime121294 Messages postés 13 Date d'inscription samedi 25 août 2012 Statut Membre Dernière intervention 5 février 2014 - 21 oct. 2012 à 23:20
A voir également:
- Programme simple en C avec variable "char" qui ne fonctionne pas
- Iphone 14 simple - Guide
- Programme demarrage windows 10 - Guide
- Simple ocr - Télécharger - Bureautique
- Simple file locker - Télécharger - Sécurité
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
21 oct. 2012 à 21:36
21 oct. 2012 à 21:36
Bonjour,
J'ai pas tout lu mais : scanf("%c%*c", &deplacement);
Avant, tu as un scanf("%d",...), donc tu as un \n dans le buffer clavier.
Il faut donc penser à faire un getchar() juste avant ton scanf("%c%*c", &deplacement);
J'ai pas tout lu mais : scanf("%c%*c", &deplacement);
Avant, tu as un scanf("%d",...), donc tu as un \n dans le buffer clavier.
Il faut donc penser à faire un getchar() juste avant ton scanf("%c%*c", &deplacement);
maxime121294
Messages postés
13
Date d'inscription
samedi 25 août 2012
Statut
Membre
Dernière intervention
5 février 2014
5
21 oct. 2012 à 22:03
21 oct. 2012 à 22:03
Tout d'abord merci pour ta réponse, mais je ne comprends pas tout à fait... En fait, je n'ai pas appris a utiliser getchar() donc je pense que mon erreur ne doit pas être corrigée de la sorte. De plus, je ne vois pas pourquoi tu dis qu'un \n est dans le buffer clavier tandis que le scanf("%d") est un int et non un char. Alors en théorie il ne devrait rien y avoir d'enregistrer dans le buffer clavier non ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
21 oct. 2012 à 22:50
21 oct. 2012 à 22:50
Lorsque tu as scanf("%d", ...); le programme va lire le buffer clavier qui est initialement vide. Il va donc attendre que tu saisisses un nombre. Pour saisir le nombre dans la variable, tu dois le valider par la touche '\n'.
Ensuite ton programme va lire le nombre saisi et le stocker dans la variable. Et il va aussi laisser le \n.
Lorsque tu vas utiliser scanf("%c...",...); il va tenter de lire le buffer clavier et récupérer le \n. Là se trouve l'erreur.
Si tu n'as pas appris getchar(), utilise simplement scanf("%*c");
D'ailleurs, à la place de scanf("%c%*c", &deplacement); tu peux même mettre :
scanf("%*c%c", &deplacement);
Ensuite ton programme va lire le nombre saisi et le stocker dans la variable. Et il va aussi laisser le \n.
Lorsque tu vas utiliser scanf("%c...",...); il va tenter de lire le buffer clavier et récupérer le \n. Là se trouve l'erreur.
Si tu n'as pas appris getchar(), utilise simplement scanf("%*c");
D'ailleurs, à la place de scanf("%c%*c", &deplacement); tu peux même mettre :
scanf("%*c%c", &deplacement);
maxime121294
Messages postés
13
Date d'inscription
samedi 25 août 2012
Statut
Membre
Dernière intervention
5 février 2014
5
21 oct. 2012 à 23:20
21 oct. 2012 à 23:20
d'accord j'ai compris merci beaucoup de m'avoir expliqué ça clairement !