Problème avec scanf

GrandMa Ho Messages postés 14 Statut Membre -  
dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   -
Hello !

J'ai deux ordinateurs sur lesquels je tourne une Kubuntu (Dapper pour l'un et Feisty pour l'autre).

Et j'ai le même problème sur les deux ordis.

A mon grand dam, je constate qu'une instruction 'scanf("%c",&lettre);' ne fonctionne pas dans un programme que je viens d'écrire.

En effet, lors de l'exécution, le programme ne s'arrête pas pour demander l'introduction du caractère en question et le résultat est donc erroné.

Par contre, si je mets, par exemple, en suivant :
scanf("%c",&caractere);
scanf("%c",&lettre);

alors le programme fonctionne correctement pour le reste.

Un petit test d'affichage montre que seul le deuxième scanf a été exécuté.

J'ai pourtant déjà effectué un tas de scanf.... avec des variables d'un autre type et je n'ai jamais eu ce problème.

Est-ce un bug du compilateur ou des librairies ?

J'aimerais bien comprendre ce qui se passe.

Merci d'avance pour toute indication.

2 réponses

moi.néo Messages postés 1135 Statut Membre 86
 
Essai avec 3 scanf à la suite et regarde ce qui sont pris en compte.
0
dubcek Messages postés 19032 Date d'inscription   Statut Contributeur Dernière intervention   5 641
 
Il doit trainer un NL (new line ==carriage return) ou un autre caractère. faire un fflush de stdin
fflush(stdin)
0