Maison >développement back-end >C++ >Comment valider la saisie numérique en C à l'aide du failbit ?

Comment valider la saisie numérique en C à l'aide du failbit ?

DDD
DDDoriginal
2024-11-15 11:50:02904parcourir

How to Validate Numeric Input in C   Using the failbit?

Validation de la saisie numérique en C

La validation de la saisie utilisateur est cruciale pour tout programme qui accepte des valeurs numériques. En C, une approche pour vérifier si une entrée est numérique consiste à utiliser la fonctionnalité failbit du flux d'entrée, cin.

Vérification de la validité de l'entrée avec failbit

Quand cin rencontre une entrée invalide, il définit le bit d'échec sur le flux d'entrée. Pour vérifier cette condition, vous pouvez utiliser la syntaxe suivante :

int n;
cin >> n;
if (!cin) // or if (cin.fail())
{
    // User did not input a number
    cin.clear(); // Reset failbit
}

Si le bit d'échec est défini, cela indique que l'entrée n'était pas un nombre valide. Dans ce cas, vous devez réinitialiser le bit d'échec à l'aide de cin.clear() pour effacer l'état d'erreur.

Effacer les mauvaises entrées avec cin.ignore()

Après l'effacement le failbit, vous devez supprimer l'entrée invalide du flux en utilisant cin.ignore() :

cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Skip bad input

Cette ligne lira et supprimera tous les caractères jusqu'au prochain caractère de nouvelle ligne ('n'), effectivement effacer la mauvaise entrée.

Gestion des entrées invalides

Une fois la mauvaise entrée effacée, vous pouvez inviter l'utilisateur à saisir à nouveau l'entrée. Cela peut être fait en utilisant une boucle qui continue jusqu'à ce qu'une entrée valide soit reçue :

while (cin.fail())
{
    // User input was invalid
    cin.clear();
    cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
    
    // Prompt user to re-enter input
    cout << "Invalid input. Please enter a valid number: ";
    cin >> n;
}

En tirant parti des méthodes failbit et cin.ignore(), vous pouvez valider efficacement la saisie numérique en C, garantissant que votre programme gère saisie utilisateur valide et invalide avec élégance.

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