Maison  >  Article  >  développement back-end  >  Comment valider correctement la double saisie en C ?

Comment valider correctement la double saisie en C ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-27 15:01:11922parcourir

How to Properly Validate Double Input in C  ?

Comment valider la saisie utilisateur en tant que double en C

Lorsque vous travaillez avec la saisie utilisateur, il est crucial de valider la saisie pour garantir sa validité . En C , la validation de l'entrée utilisateur en tant que double peut être réalisée par diverses méthodes. Une approche courante consiste à utiliser l'opérateur cin, comme démontré dans l'extrait de code ci-dessous :

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, ce code peut rencontrer un problème où il génère en permanence le message « Entrée invalide ! » instruction, lui interdisant de demander une autre entrée. Pour résoudre ce problème, la modification suivante peut être apportée :

...
else {
    // not a valid number
    cout << "Invalid Input! Please input a numerical value." << endl;
    cin.clear();
    while (cin.get() != '\n') ; // empty loop
}
...

Cette modification comprend deux étapes essentielles :

  1. Effacer l'état d'erreur : cin.clear () est utilisé pour effacer l'état d'erreur qui a été défini lorsqu'une entrée non valide a été rencontrée. Cela permet au programme de continuer à lire les entrées sans que l'indicateur d'erreur n'interfère.
  2. Empty Loop: The while (cin.get() != 'n') ; La boucle est une boucle vide qui consomme les caractères restants qui ont été saisis sur la même ligne que l'entrée non valide. Cela garantit que tous les caractères invalides sont supprimés du tampon d'entrée et que le programme est prêt à lire l'entrée suivante.

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:
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