Rechercher : dans
Par :

[C] scanf et caractères

Dernière réponse le 23 jun 2005 à 14:13:31 3., le 23 jun 2005 à 13:36:02 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [C] scanf et caractères » dans :
Les chaînes de caractères en C++ Voir Qu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
[Programmation] Polices de caractères pour programmeur VoirCourrier: Un mauvais choix La plupart des programmeurs utilisent la police de caractères Courrier pour travailler. C'est un mauvais choix, car cette police est peu lisible. En taille 9, il est impossible de distinguer 0 (zéro) de O (lettre...
On peut utiliser comme on veut les polices de caractères VoirMythe On peut utiliser comme on veut les polices de caractères (TrueType, TTF...) Réalité FAUX. Explications Non, vous ne pouvez pas. Comme tout travail d'artiste, l'auteur d'une police de caractères doit être rémunéré pour son travail. C'est...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage C sont typées, c'est-à-dire que les données contenues dans...

1

maily, le 23 jun 2005 à 13:44:19

Bonjour!

que t'affiche t il? y'a t il un message d'erreur? Maily,
Faut qu'j'y aille joe!

Répondre à maily

2

3., le 23 jun 2005 à 14:01:37

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 

Répondre à 3.

3

Timon1102, le 23 jun 2005 à 14:04:13

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

Répondre à Timon1102

4

maily, le 23 jun 2005 à 14:08:24

Ou, après ton premier scanf, tu mets
fflush (stdin); qui vide le buffer d'entrée...
Maily,
Faut qu'j'y aille joe!

Répondre à maily

5

 3., le 23 jun 2005 à 14:13:31

Ca marche avec le "fflush(stdin);" ...
merci beaucoup ^^

Répondre à 3.