[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.
A voir également:
- [Programmation C]-sécurisation d'un champ
- Application de programmation - Guide
- Programmer un sms - Guide
- Mettre en veille un programme - Guide
- Programmer un mail gmail - Guide
- Cette action ne peut pas être réalisée car le fichier est ouvert dans un autre programme - Guide
5 réponses
salut
pourquoi ne fais-tu pas un %d (entier) au lieu d'un %f ???
sinon essaie
---
ou si tu veux garder tes deux variables...
En fait [réel - entier] est converti en entier => (25.5 - 25) est calculé comme (25 -25) donc =0.
ça doit etre ça !
pourquoi ne fais-tu pas un %d (entier) au lieu d'un %f ???
sinon essaie
float 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 !
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 !!!!!!!!!!!!!!!!!!!!!!!!!!!
;°)
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