C : scanf et float, valeur retournée = 0 ?

Résolu/Fermé
bionicleman Messages postés 36 Date d'inscription samedi 7 mars 2009 Statut Membre Dernière intervention 12 février 2011 - 17 avril 2009 à 01:33
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 17 avril 2009 à 01:43
Bonsoir,
j'ai un soucis avec la fonction "scanf" et les variables de type "float".

lors de mon scanf (qui doit récupérer un float) j'entre par exemple "36." et la valeur récupérée est 0.
j'ai testé plusieurs façon d'écrire mon programme, différentes valeurs... mais rien n'y fait.

Voilà mon code ;-)

//déclaration des variables
float r;
//initialisation des variables
scanf("%lf",&r); //testé avec des entiers, flottants
printf("%f\n",r); //le printf me renvoie soit 0.000.. soit -0.000... soit... plusieurs miliards =X


En espérant avoir fait une erreur basique =D
Merci d'avance ;-)

[Edit]
scanf("%lf",&r); //à supprimer.. merci encore ;-P
/Edit

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 816
17 avril 2009 à 01:43
Salut,

Effectivement, t'as fait une erreur basique ;-)))

scanf("%lf",&r); //testé avec des entiers, flottants
Tu mets lf alors que ta variable est un float.

Deux solutions :
En double :
//déclaration des variables
double r;
//initialisation des variables
scanf("%lf",&r); //testé avec des entiers, flottants
printf("%f\n",r); //le printf me renvoie soit 0.000.. soit -0.000... soit... plusieurs miliards =X 

Ou alors en float :
//déclaration des variables
float r;
//initialisation des variables
scanf("%f",&r); //testé avec des entiers, flottants
printf("%f\n",r); //le printf me renvoie soit 0.000.. soit -0.000... soit... plusieurs miliards =X 

Cdlt
2