Maison > développement back-end > C++ > le corps du texte

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

DDD
Libérer: 2024-11-15 11:50:02
original
838 Les gens l'ont consulté

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

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

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

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal