Validation de l'entrée utilisateur en tant que double en C
La validation de l'entrée utilisateur pour garantir son intégrité est cruciale dans la programmation C. Lorsqu'il s'agit de valeurs à virgule flottante, il devient essentiel de vérifier que l'entrée est bien un double.
Considérez l'extrait de code suivant qui demande de manière itérative à l'utilisateur un double :
double x; while (1) { cout << '>'; if (cin >> x) { // valid number break; } else { // not a valid number cout << "Invalid Input! Please input a numerical value." << endl; } }
Cependant, le code fourni contient un défaut : si l'utilisateur saisit une entrée invalide, l'instruction if échouera et le bloc else affichera un message d'erreur. Cependant, le programme ne demandera plus de saisie à l'utilisateur, ce qui entraînera une boucle infinie de messages d'erreur.
Pour résoudre ce problème, nous pouvons utiliser la fonction cin.clear() pour effacer l'état d'erreur et le while (cin.get() != 'n') ; boucle pour vider le tampon d’entrée. De cette façon, lorsqu'une entrée non valide est rencontrée, le programme affichera le message d'erreur, effacera l'état d'erreur, éliminera l'entrée non valide et demandera à l'utilisateur une entrée valide.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!