6
votes

Deuxième scanf ne fonctionne pas

J'ai des problèmes avec ce code de langue C:

 char st[2];

 printf("enter first value:");
 scanf("%c", &st[0]);

 printf("enter second value:");
 scanf("%c", &st[1]);

c

2 commentaires

Duplicaté possible: Stackoverflow .com / questions / 1669821 / ...


Ce doit être la journée pour scanf questions. même problème que ceci , je pense. [] ()


5 Réponses :


10
votes

Eh bien ça fait. Le (s) caractère (s) produit (s) par la clé Entrée est déjà présent dans le tampon.


0 commentaires

4
votes

Je pense que votre problème est le deuxième scanf reçoit la touche "ENTER".


0 commentaires

4
votes

Vous obtenez la nouvelle ligne implicite que vous avez entrée comme le deuxième caractère, c'est-à-dire I.e ST [1] obtient la valeur '\ n' . Un moyen facile de résoudre ce problème consiste à inclure la nouvelle ligne de la chaîne de format attendue: scanf ("% c \ n", & st [0]);


0 commentaires

3
votes

Changer xxx

à ceci xxx

c'est une réponse vacante (aucune erreur d'erreur ou rien) mais facile et facile. < / p>


0 commentaires

4
votes

Utiliser fflush (stdin); fonction avant le deuxième scanf (); . Il affleurera la touche Entrée générée après le premier scanf (); En réalité, votre deuxième scanef () prend l'entrée comme entrée et puisque Scanf se termine après avoir eu une entrée, elle ne prend rien d'autre à vos côtés.


0 commentaires