scanf ("% d% c", et taille, et chara); Travaux mais Séparer Scanf pour l'entrée de caractères ne fonctionne pas. Je montre ceux-ci à l'intérieur du code. Pourquoi est-ce?
3 Réponses :
scanf n'a pas consommé le caractère Donc, donc le deuxième appel scanf a fait. P> Vous devez effacer le stdin avant de lire à nouveau ou vient de me débarrasser de la nouvelle ligne. P> Le deuxième appel doit être P> \ n code> qui est resté dans la mémoire tampon à partir du premier appel de scanaf.
scanf(" %c",&chara);
^ this space this will read whitespace charaters( what newline also is) until it finds a single char
Oui, je crois que Armin est correct. Scanf lira dans WhitSpace (Barre d'espace, Newline, etc.). Lorsque vous entrez des valeurs si vous cliquez sur la barre d'espace ou entrez à droite après la première scanef, la deuxième scanef lira dans cette valeur (espace, nouvelle ligne, etc.). Vous avez donc réparé qu'avec Scanf ("% D% C", & Taille, & Chara), car il existe un espace entre% d et% c. Si vous voulez qu'ils soient séparés, faites ce que l'Armin a suggéré: Scanf ("% C", & Chara). p>
lancer un getchar () strong> entre eux et slurp up cette nouvelle ligne superfline. P>