nollyflip
Messages postés9Date d'inscriptionlundi 10 octobre 2005StatutMembreDernière intervention 2 juin 2007
-
10 oct. 2005 à 19:38
orellaf
Messages postés4Date d'inscriptionjeudi 29 septembre 2005StatutMembreDernière intervention 1 juillet 2010
-
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();
}
nollyflip
Messages postés9Date d'inscriptionlundi 10 octobre 2005StatutMembreDernière intervention 2 juin 2007 10 oct. 2005 à 22:52
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 !
orellaf
Messages postés4Date d'inscriptionjeudi 29 septembre 2005StatutMembreDernière intervention 1 juillet 2010 10 oct. 2005 à 21:01
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 = ");
cs_eRoZion
Messages postés241Date d'inscriptionvendredi 23 mai 2003StatutMembreDernière intervention 8 octobre 20071 11 oct. 2005 à 00:19
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> .
orellaf
Messages postés4Date d'inscriptionjeudi 29 septembre 2005StatutMembreDernière intervention 1 juillet 2010 23 oct. 2005 à 19:21
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>