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
226 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!

source:php.cn
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