Blindage de saisie

Signaler
Messages postés
1
Date d'inscription
mercredi 4 septembre 2002
Statut
Membre
Dernière intervention
16 mars 2003
-
Messages postés
113
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
5 janvier 2004
-
Bonjour

je souhaterai effectuer un blindage de saisie sur des entiers uniquement.

Par exemple dans le code ci dessous :

aff(" \nrentrez un numero entre 1 et 7 :",t_max);
scanf ("%d",&nb);

si on rentre un caractere de type de 'a' a 'z', soit le programme l'accepte et fait n'importe quoi, soit il boucle un grand nombre de fois.
Est ce que c'est possible de selectionner uniquement les entiers de 0 a 9?
Si ce n'est pas trop complique car je suis debutant

merci

2 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
prends ton entree de saisie dans un "char".
tu regardes si > 47 && < 58
else tu dis PAS BON.
BruNews, ciao...
Messages postés
113
Date d'inscription
lundi 24 février 2003
Statut
Membre
Dernière intervention
5 janvier 2004

Ou un simple:
cin >> nb;
et la une petite boucle:
do
{
aff("...");
cin >> nb;
} while (nb < 1 && nb > 7);

Si tu veux avertir l'utilisateur, un petit if dans la boucle.
Si le gars entre azerty au lieu d'un chiffre: nb = 0

A bientôt,
P-A