Les nombres par rapport aux caractères

Fermé
KearsBonim Messages postés 4 Date d'inscription vendredi 12 décembre 2014 Statut Membre Dernière intervention 15 novembre 2015 - 15 nov. 2015 à 12:41
KearsBonim Messages postés 4 Date d'inscription vendredi 12 décembre 2014 Statut Membre Dernière intervention 15 novembre 2015 - 15 nov. 2015 à 14:31
Bonjour à toutes et à tous.

J'ai besoin de votre c'est très urgent.

Voilà mon problème, nous avons des programmes à faire dans lesquels on doit entrer des nombres.

C'est la qu'est mon problème. Notre prof d'info est très fourbe, et n'entrera pas de nombre.. Donc comment faire pour dire que si il entre autre chose qu'un nombre, il doit recommencer tant que ce n'en est pas un.

Je sais, du moins je pense que ça doit commencer par ça:

while(num???)

{

printf("caractère non valide, veuillez recommencer");

scanf("%d",&num);

}

Je pense que vous aurez compris que mon problème se situe '???'

Merci d'avance

1 réponse

ElementW Messages postés 4764 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 295
15 nov. 2015 à 13:04
'lut,
scanf
renvoie le nombre de paramètres qu'il a pu interpréter comme il faut, c'est donc en fonction de ça que ton
while
devra se faire.
En l'occurence tu veux un unique paramètre, donc
1
sera renvoyé si ce qui est entré est un nombre (et
num
sera modifié respectivement),
0
sinon.
0
KearsBonim Messages postés 4 Date d'inscription vendredi 12 décembre 2014 Statut Membre Dernière intervention 15 novembre 2015
15 nov. 2015 à 13:52
D'abord, merci pour ta réponse rapide :)
Mais qu'est ce que je dois mettre dans le while?
Parce que la personne qui utilisera mon programme pourra mettre 1239984 si ça lui chante.
Je peux donc pas prédire ce que l'utilisateur mettra
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 816
15 nov. 2015 à 14:28
Bonjour,

scanf("%d",...) n'est pas l'idéal pour la saisie sécurisée...
Utilise plutôt un fgets() sur pour lire une chaîne de caractères.
Ensuite, tu tentes la conversion avec strtol().
Note : il ne faut pas oublier de vider le buffer clavier...
0
KearsBonim Messages postés 4 Date d'inscription vendredi 12 décembre 2014 Statut Membre Dernière intervention 15 novembre 2015
15 nov. 2015 à 14:31
Ok, merci beaucoup !
Je vais essayer ça
0