Verifier saisie chiffre et opération en C. [Résolu]

Signaler
Messages postés
6
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
21 mai 2006
-
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
-
Salut,

voila je programme en C sous devC++ et j'aimerais savoir quel fonction me permettrait de savoir si l'utilisateur a bien saisie un chiffre entier. (pouvant etre composant de 2 nombre)

C'est dans le but de vérifier l'operation faite par l'utilisateur pour retrouver le conte dans le jeux les chiffres et les lettres.
A propos de cette verification d'operation si vous avez un example sous la main, je vous bennis pour 100 générations. ( si si !)

Dealer2kinder

7 réponses

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
18
Messages postés
6
Date d'inscription
vendredi 28 octobre 2005
Statut
Membre
Dernière intervention
21 mai 2006

Soit béni,

mais pas pour les 100 générations parceque dans ton exemple t'avais oublié de déclarer c. ^^

Nan serieux merci beaucoup, ça marche dessuite, j'ai pigé,

c'est parfait merci encore.
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
18
(le code est pas de moi et je l'ai vérifier que rapidement désolé)
bon codage
++;
Messages postés
13
Date d'inscription
vendredi 31 octobre 2008
Statut
Membre
Dernière intervention
22 mai 2009
2
Bonjour ,

Comment faut - il déclarer la varraible c ; j'ai remplacer c par carractere mais il  y a un bug. Quand je rentre une valleur float le programme ne ne me demande pas d'entrer de nouvelle valleur .Savez vous pourquoi et comment resoudre se probleme.

Merci.
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
18
Le code doit etre le suivant :
dans le cas d'un float, il faut un scan("%f", ... au la place du scan(%d", ...
(le "%d" sert a récupérer un entier (int)).

/****************************************************************/


/*
ou comment utiliser scanf en testant les données lues. Dans
cet exemple, on veut lire un entier positif
*/




#include <stdio.h>







int
main()
{
int n,nb_var;
char caractere;

n=1;
nb_var=1;
do {
nb_var=scanf("%d",&n); /* nb_var vaut 0 si l'utilisateur n'a pas donne un
entier, et 1 si l'utilisateur a donne un entier.
n vaut le nombre donne par l'utilisateur si c'est
un entier (si nb_var==1, donc), et sa valeur n'est
pas changée sinon.
*/
if (!nb_var) {
/*
cas ou la valeur de n n'a pas ete changée :
on lit jusqu'à la fin de la ligne.
*/
do {
scanf("%c",&caractere);
} while (caractere != '\n');
}
/*
on recommence la boucle si aucun entier n'a ete lu, ou si l'entier
lu est plus petit que 0
*/
} while ((nb_var==0)||(n < 0));
return 0;
}
Messages postés
13
Date d'inscription
vendredi 31 octobre 2008
Statut
Membre
Dernière intervention
22 mai 2009
2
excusez moi je me suis mal exprimer moi je voudrais verifier que l'utilisateur a bien saisie un nombre entier

nb_var=scanf("%d",&n); /* nb_var vaut 0 si l'utilisateur n'a pas donne un
entier, et 1 si l'utilisateur a donne un entier.
n vaut le nombre donne par l'utilisateur si c'est
un entier (si nb_var==1, donc), et sa valeur n'est
pas changée sinon.
*/

seulement avec se code quand j'entre un float nb_var est quand meme egal à 1. Une idée pour remedier à se problème ?

Merci.
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
18
C'est normal.
si tu saisis 15.42, le scanf("%d" ...) va a priori lire et stocker l'entier "15" dans ta variable et le scanf reverra un 1, puisqu'il aura bien rempli 1 entier.