Validation des entrées
Fait partie de la section Fundamentals du Journey C de Coddy — leçon 35 sur 63.
Lorsque vous acceptez des entrées d'utilisateurs, il est important de vérifier que l'entrée est valide avant de l'utiliser dans votre programme.
Pour la validation de la saisie d'un entier, vous pouvez vérifier la valeur de retour de scanf :
int number;
int result = scanf("%d", &number);La fonction scanf retourne le nombre d'éléments lus avec succès :
if (result == 1) {
// L'entrée a été lue avec succès
printf("Valid input: %d\n", number);
} else {
// L'entrée était invalide
printf("Invalid input!\n");
}Pour la validation de plage, utilisez des instructions conditionnelles après avoir lu l'entrée :
if (number >= 1 && number <= 100) {
printf("Number is within valid range (1-100)\n");
} else {
printf("Number is outside valid range!\n");
}Défi
FacileÉcrivez un programme qui lit un entier de l'utilisateur et le valide de deux manières :
- Vérifiez si l'entrée est bien un entier (en utilisant la valeur de retour de scanf)
- Vérifiez si l'entier est compris entre 10 et 50 (inclus)
Votre programme doit afficher :
- "Valid input!" si l'entrée est un entier valide entre 10 et 50.
- "Invalid input type!" si l'entrée n'est pas un entier.
- "Out of range!" si l'entrée est un entier mais n'est pas comprise entre 10 et 50.
Aide-mémoire
Pour valider la saisie d'un entier, vérifiez la valeur de retour de scanf :
int number;
int result = scanf("%d", &number);
if (result == 1) {
// La saisie a été lue avec succès
printf("Valid input: %d\n", number);
} else {
// La saisie était invalide
printf("Invalid input!\n");
}Pour la validation de plage, utilisez des instructions conditionnelles :
if (number >= 1 && number <= 100) {
printf("Number is within valid range (1-100)\n");
} else {
printf("Number is outside valid range!\n");
}Essayez vous-même
#include <stdio.h>
int main() {
// Écrivez votre code ici
return 0;
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fundamentals
2Variables
Types de donnéesEntiersFloat - DoubleCaractèresBooléensConstantesLes bases de printfRègles de nommage des variablesType Casting Partie 1Type Casting Partie 2Défi récapitulatif5Entrées & Sorties
Spécificateurs de formatBases de scanfDéfi récapitulatif n°1Validation des entréesDéfi récapitulatif n°23Opérateurs
Opérateurs arithmétiquesOpérateur moduloIncrémentation/DécrémentationOpérateurs d'affectationOpérateurs relationnelsOpérateurs logiques - Partie 1Opérateurs logiques - Partie 2Opérateurs logiques - Partie 3Défi récapitulatif