Les Allergies
Alimentaires
Posez votre question Signaler

[C] scanf et caractères

3. - Dernière réponse le 23 juin 2005 à 14:13
je débutte en C et j'ai un problème sur un programme
j'aimerai que l'utilisateur puisse saisir 2 caractères
le programme suivant ne marche pas je ne comprend pas pourquoi :o(


#include<stdio.h>

main()
{
      char caractere_1,caractere_2;
     
      printf("caractere_1 ? "); 
      scanf("%c",&caractere_1);
       
      printf("caractere_2 ? "); 
      scanf("%c",&caractere_2);
      
      printf("\n\n --> %c %c", caractere_1, caractere_2);
      getchar();getchar();

}


merci de votre aide
Lire la suite 

[C] scanf et caractères »

5 réponses
Réponse
+1
moins plus
ou, après ton premier scanf, tu mets
fflush (stdin); qui vide le buffer d'entrée...
Ajouter un commentaire
Réponse
+1
moins plus
ca marche avec le "fflush(stdin);" ...
merci beaucoup ^^
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour!

que t'affiche t il? y'a t il un message d'erreur?
Ajouter un commentaire
Réponse
+0
moins plus
il n'affiche aucun message d'erreur
je peux entrer le caractère1 normalement ( "caractère_1 ?" s'affiche à l'écran )
puis il affiche "caractère_2 ?"
jusque là tout va bien
mais ensuite le programme ne prend pas en compte le 2ème scanf et passe directement à la dernière instruction ( printf )
( " --> [ici le premier caractère entré]" s'affiche )

au final, j'ai à l'écran ( en prenant caractère1=a par exemple )

caractère_1 ? a
caractère_2 ?

 --> a 
Ajouter un commentaire
Réponse
+0
moins plus
c'est parce que tu a unretour chariot dans le buffer...
(le char '\n')
peut etre qu'en faisant scanf("%c\n");
ca ira mieux, sinon fais un autre scanf ala suite pour 'purger' le buffer, mais c'est pas tres propre
Ajouter un commentaire
Ce document intitulé « [C] scanf et caractères » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?