Il faut récupérer la valeur de retour du scanf et si cette valeur de
retour est égale à 0 alors il y a une erreur de saisie.
Dans notre cas scanf est une fonction C qui prend 2 paramètres
(“%d”, et &nb), et renvoi 0 s’il y a une erreur de
typage sinon elle renvoie 1.
À l’endroit de votre programme, créez un fichier texte data.txt dans
lequel vous saisissez simplement une valeur (42, par exemple). Puis
utilisez les redirections du cours de commandes unix :
Solution 1
./votreProgramme < data.txt
Solution 2
cat data.txt | ./votreProgramme
Exercice 3 : Décliner votre
identité
Créer un répertoire exo3 dans lequel on ajoutera le fichier
exo3.c contenant le code suivant :
Créer un programme reproduisant (par exemple) la sortie ci-dessous.
Votre programme devra redemander de saisie l’âge jusqu’à ce qu’une
saisie soit correcte (un entier, positif, inférieur à 27).
Entrez votre nom :...Entrez votre prénom :...Entrez votre âge :...Voici ce que vous avez entré :Nom : CobainPrénom : KurtÂge :27 ans
Améliorer le programme principale en ajoutant la possibilité de
vider le buffer pour éviter un problème. Effectivement, dans la
démonstration précédente lorsque l’on saisie une lettre à la place de
l’âge, au tour suivant, on ne peut plus remplir son nom. Pour cela, nous
pouvons utiliser la fonction qui vide le buffer et permet d’éviter le
problème. On l’appelera après le scanf de l’âge.
/* Auteur : Peio *//* Date : 19/11/20 *//* Résumé : procédure qui permet de vider le buffer d'un scanf *//* Entrée(s) : aucune *//* Sortie(s) : aucune */void emptyBuffer(){char c;while(((c = getchar())!='\n')&&(c != EOF));}
Exercice 4 : Séquences
d’échappement
Créer un répertoire exo4 dans lequel on ajoutera le fichier
exo4.c contenant le code suivant :