R1.01 – Prog#7 – Exercice 8

Un entier est une suite de caractères numériques (digits) éventuellement précédé d’un signe + ou -. Pour qu’un entier soit valide, il faut que la chaîne de caractères qui le représente soit compatible avec son type :

  1. un entier non signé ne peut être précédé du signe -,
  2. la valeur de la chaîne ne peut excéder la valeur maximale du type correspondant (32767 pour un short, 65535 pour un unsigned, etc.

Ecrire la fonction extractionsEntiers() qui, dans une boucle, extrait (opérateur >>) au clavier (ou sur un fichier redirigé sur l’entrée standard cin) tous les entiers et les affiche à l’écran à raison d’un par ligne. La boucle se termine lorsque l’extraction échoue (fail()).

Faire plusieurs essais, en saisissant un ou plusieurs entiers par ligne, séparés ou non par des caractères d’espacement, en saisissant des lignes vierges ou seulement composées de caractères d’espacement.

Vous devez constater que :

  1. n’importe quel entier valide est extrait,
  2. tous les caractères d’espacement sont ignorés,
  3. le programme se termine au premier échec d’extraction. Le caractère “fin-de-fichier” (Ctrl+D) permet aussi de terminer la saisie. La condition d’arrêt ne doit pas utiliser le prédicat eof(), sauf si aucune erreur de saisie n’est à craindre (ce qui est plutôt rare !)