[Programmation C]-sécurisation d'un champ

Omar -  
 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.
Configuration: win xp -dev cpp

5 réponses

  1. Utilisateur anonyme
     
    salut

    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 !
    0
  2. omar
     
    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
    0
  3. Utilisateur anonyme
     
    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 !
    0
  4. SKZ81
     
    Quoi ???

    T'as pas la fonction isInteger(void* x) sur ton compilo ???

    LA HONTE !!!!!!!!!!!!!!!!!!!!!!!!!!!
    ;°)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. chouchen
     
    Pour sécuriser ton champs, met une clotûre électrique ;-)
    0