Maison > développement back-end > C++ > Comment valider de manière fiable la double entrée en C ?

Comment valider de manière fiable la double entrée en C ?

Barbara Streisand
Libérer: 2024-12-10 15:43:09
original
271 Les gens l'ont consulté

How to Reliably Validate Double Input in C  ?

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;
    }
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal