Problème avec scanf

Fermé
GrandMa Ho Messages postés 14 Date d'inscription jeudi 11 novembre 2004 Statut Membre Dernière intervention 2 décembre 2007 - 22 juin 2007 à 22:39
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 - 24 juin 2007 à 15:18
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 1132 Date d'inscription vendredi 17 septembre 2004 Statut Membre Dernière intervention 9 juin 2011 86
23 juin 2007 à 01:18
Essai avec 3 scanf à la suite et regarde ce qui sont pris en compte.
0
dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
24 juin 2007 à 15:18
Il doit trainer un NL (new line ==carriage return) ou un autre caractère. faire un fflush de stdin
fflush(stdin)
0