Les nombres par rapport aux caractères

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

  1. Contributeur
    '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
    1. 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
    2. Contributeur
      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
    3. Ok, merci beaucoup !
      Je vais essayer ça
      0