[Programmation C]-sécurisation d'un champ
Omar
-
chouchen -
chouchen -
[programmation c]-sécurisation d'un champ?
BOnjour,
je réalise un petit projet de calculatrice en binaire où je voudrais forcer l'utilisateur a n'entrer que des entiers pour les calculs.
Logiciel: Dev cpp
OS: win xp
Donc s'il entre 25.5, le programme devrait refuser cette entrée.
J'ai bien essayer ceci:
<code
int test;
float saisie;
scanf("%f",&saisie);
test=saisie;
//exemple: 25.5-25=0.5 !=0 ---> na pas entré un ENTIER
if (saisie-test!=0) printf("entre un entier")
Mais ce la ne fonctionne pas.
Auriez vous une idée pour interdire la saisie de réels , seuls les entiers étant acceptés.
Merci d'avance a TOUS :D
Omar.
BOnjour,
je réalise un petit projet de calculatrice en binaire où je voudrais forcer l'utilisateur a n'entrer que des entiers pour les calculs.
Logiciel: Dev cpp
OS: win xp
Donc s'il entre 25.5, le programme devrait refuser cette entrée.
J'ai bien essayer ceci:
<code
int test;
float saisie;
scanf("%f",&saisie);
test=saisie;
//exemple: 25.5-25=0.5 !=0 ---> na pas entré un ENTIER
if (saisie-test!=0) printf("entre un entier")
Mais ce la ne fonctionne pas.
Auriez vous une idée pour interdire la saisie de réels , seuls les entiers étant acceptés.
Merci d'avance a TOUS :D
Omar.
Configuration: win xp -dev cpp
5 réponses
-
salut
pourquoi ne fais-tu pas un %d (entier) au lieu d'un %f ???
sinon essaiefloat saisie; scanf("%f",&saisie); if( (saisie - (int)saisie) != 0) pas entier
---
ou si tu veux garder tes deux variables...
int test; float saisie; scanf("%f",&saisie); test=saisie; if(saisie - (float)test != 0) pas entier
En fait [réel - entier] est converti en entier => (25.5 - 25) est calculé comme (25 -25) donc =0.
ça doit etre ça ! -
oui ca rend bien 0 mais comment faire pour quil me rende quelque chose de pertinent me permettant de savoir sil a entré un réel ou un entier
-
tu as essayé les deux bouts de code que je t'ai donné ?
on passe dans le if si ce n'est pas un entier, le else quand c'est autre chose ! -
Quoi ???
T'as pas la fonction isInteger(void* x) sur ton compilo ???
LA HONTE !!!!!!!!!!!!!!!!!!!!!!!!!!!
;°) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -