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
A voir également:

1 réponse

ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 228
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 844
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