Problème avec scanf() insovlable ?! [Résolu]

Signaler
Messages postés
9
Date d'inscription
lundi 10 octobre 2005
Statut
Membre
Dernière intervention
2 juin 2007
-
Messages postés
4
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
1 juillet 2010
-
Bonjour,
J'ai un souci plutôt embêtant avec scanf()
Je programme sous XP et devcpp
Dès que j'appel scanf(), la console se ferme (ca plante quoi)
J'ai fait un programme tout simple qui DOIT fonctionner (recopié !)
Mais ca ne fonctionne pas.
Qqun a une idée ?
Merci d'avance

#include <stdio.h>
main()
{
int i;
printf("entrer un entier sous forme hexadecimale i = ");
scanf("%x",&i);
printf("i = %d\n",i);
getchar();
}

4 réponses

Messages postés
9
Date d'inscription
lundi 10 octobre 2005
Statut
Membre
Dernière intervention
2 juin 2007

Ca ne fonctionne pas, j'ai une erreur de fonction system() non déclarée lors de la compilation.
Le getchar() à la fin me permettait de garder la console ouverte justement
Mais apparement ca fonctionne en mettant une boucle infinie.
Mon scanf() n'a jamais voulu fonctionner et d'un coup il devient tout docile ?!
Il faisait planter tous mes progs dès que je m'en servais (je respectais bien le type de données..)
Problème résolu, comment, mystère
En tout cas merci !
Messages postés
4
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
1 juillet 2010

Ton probleme n'a rien n'avoir avec scanf() mais sous Deccpp, il faut rajouter system("PAUSE"); à la fin du programme pour que la console reste ouverte .

Voila le programme modifié :



#include <stdio.h>

main()

{

int i;

printf("entrer un entier sous forme hexadecimale i = ");

scanf("%x",&i);

printf("i = %d\n",i);

getchar();

system("PAUSE");

}
Messages postés
241
Date d'inscription
vendredi 23 mai 2003
Statut
Membre
Dernière intervention
8 octobre 2007
1
Salut,

en fait c'est tout simple, quand tu appuies sur <entrer> pour
valider ta saisie dans le scanf(), le getchar() qui suit le récupère et
la suite du code est exécutée.



Les solutions :

- ou tu place un deuxième getchar() consécutif au premier ,

- ou tu te sers du system("PAUSE") en incluant la librairie <stdlib.h> .



eRoZion
Messages postés
4
Date d'inscription
jeudi 29 septembre 2005
Statut
Membre
Dernière intervention
1 juillet 2010

Salut,

pour ton probleme, il suffit de rajouter system("PAUSE"); à la fin du programme (oui ca on sait) , et si tu as enregistré sous Devcpp avec l'extension .c alors cela marchera. Si par contre tu as enregistré ta source avec l'extension .cpp alors cette fois-ci il te faudra rajouter la librairie stdlib au debut de ton prog : #include <stdlib.h>