7
votes

Pourquoi 2nd Scanf ne fonctionne pas dans mon programme?

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? XXX


0 commentaires

3 Réponses :


9
votes

scanf n'a pas consommé le caractère \ n code> qui est resté dans la mémoire tampon à partir du premier appel de scanaf.

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>

scanf(" %c",&chara);
       ^ this space this will read whitespace charaters( what newline also is) until it finds a single char


0 commentaires

1
votes

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).


0 commentaires

0
votes

lancer un getchar () entre eux et slurp up cette nouvelle ligne superfline.


0 commentaires