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

nollyflip 9 Messages postés lundi 10 octobre 2005Date d'inscription 2 juin 2007 Dernière intervention - 10 oct. 2005 à 19:38 - Dernière réponse : orellaf 4 Messages postés jeudi 29 septembre 2005Date d'inscription 1 juillet 2010 Dernière intervention
- 23 oct. 2005 à 19:21
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();
}
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
nollyflip 9 Messages postés lundi 10 octobre 2005Date d'inscription 2 juin 2007 Dernière intervention - 10 oct. 2005 à 22:52
3
Merci
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 !

Merci nollyflip 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de nollyflip
orellaf 4 Messages postés jeudi 29 septembre 2005Date d'inscription 1 juillet 2010 Dernière intervention - 10 oct. 2005 à 21:01
0
Merci
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");

}
Commenter la réponse de orellaf
cs_eRoZion 241 Messages postés vendredi 23 mai 2003Date d'inscription 8 octobre 2007 Dernière intervention - 11 oct. 2005 à 00:19
0
Merci
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
Commenter la réponse de cs_eRoZion
orellaf 4 Messages postés jeudi 29 septembre 2005Date d'inscription 1 juillet 2010 Dernière intervention - 23 oct. 2005 à 19:21
0
Merci
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>
Commenter la réponse de orellaf

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.