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

Messages postés
6
Date d'inscription
vendredi 28 octobre 2005
Dernière intervention
21 mai 2006
- - Dernière réponse : cs_laurent1024
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Dernière intervention
30 août 2012
- 5 nov. 2008 à 10:57
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
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Dernière intervention
30 août 2012
3
Merci
http://webloria.loria.fr/~chevalie/STPI/sources/scanf.c.html
++

Merci cs_laurent1024 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de cs_laurent1024
Messages postés
6
Date d'inscription
vendredi 28 octobre 2005
Dernière intervention
21 mai 2006
3
Merci
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.

Merci dealer2kinder 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de dealer2kinder
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Dernière intervention
30 août 2012
0
Merci
(le code est pas de moi et je l'ai vérifier que rapidement désolé)
bon codage
++;
Commenter la réponse de cs_laurent1024
Messages postés
13
Date d'inscription
vendredi 31 octobre 2008
Dernière intervention
22 mai 2009
0
Merci
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.
Commenter la réponse de banniwe
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Dernière intervention
30 août 2012
0
Merci
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;
}
Commenter la réponse de cs_laurent1024
Messages postés
13
Date d'inscription
vendredi 31 octobre 2008
Dernière intervention
22 mai 2009
0
Merci
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.
Commenter la réponse de banniwe
Messages postés
987
Date d'inscription
mardi 31 mai 2005
Dernière intervention
30 août 2012
0
Merci
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.
Commenter la réponse de cs_laurent1024

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.