Bonjour,
Je débute l'apprentissage du langage C et je viens de voir l'utilisation de printf et scanf ... et oui c'est vraiment le début
Comme à chaque fois que je vois une nouvelle notion, j'ai décidé de faire des essais avec.
Voilà en simplifié le petit bout de code qui me cause soucis :
On peut pas faire beaucoup plus simple mais pourtant ça ne fonctionne pasCode:int Q1 ; char Q2 ; printf ("Question 1 ?") ; scanf ("1%d",&Q1) ; printf ("Question 2 ?") ; scanf ("1%c",&Q2) ; printf ( "Reponse 1 : %d et Reponse 2 : %c",Q1,Q2) ;
Si j'ai bien compris mon petit cours sur scanf, cette fonction scanne tout une ligne. Si je donne comme réponse le chiffre 1 à la première question, et que je valide par Entrée pour passer à la 2eme, 2 caractères vont être enregistrés.
Le chiffre 1 qui était attendu par scanf pour Q1, et le retour ligne qui correspond à un caractère et que scanf utilise donc pour Q2.
Comment je peux faire pour vider le tampon de scanf pour qu'il ne prenne pas en compte mon retour ligne au deuxième appel de la fonction?
Si ce n'est pas possible, avez-vous une méthode qui permette de réaliser le même objectif que celui que je m'étai fixé?
J'ai bien pensé à intercaler un 3eme scanf entre les deux autres et dont la valeur ne me servirai pas ... mais il y a peut être mieux !
Merci beaucoup de votre aide
-----