Maison > développement back-end > C++ > Comment puis-je valider efficacement la saisie d'entiers de l'utilisateur en C ?

Comment puis-je valider efficacement la saisie d'entiers de l'utilisateur en C ?

Susan Sarandon
Libérer: 2024-12-20 21:41:13
original
458 Les gens l'ont consulté

How Can I Effectively Validate Integer Input from the User in C  ?

Vérification de la validité des entiers des entrées utilisateur

Lorsque vous travaillez avec des entrées utilisateur, il est essentiel de s'assurer que les données saisies correspondent au format attendu. Dans les cas où des valeurs entières sont requises, vous pouvez rencontrer des scénarios dans lesquels les utilisateurs saisissent par inadvertance des caractères non numériques.

Cet article fournit une solution pour résoudre ce problème en vérifiant si l'entrée du flux d'entrée standard cin est un nombre entier. ou non. Voici une description détaillée de l'implémentation :

int x;
cin >> x;

if (cin.fail()) {
    // Not an int.
}
Copier après la connexion

La fonction cin.fail() vérifie l'état du flux d'entrée. Si l'opération d'entrée n'a pas réussi (par exemple, en raison d'une entrée non valide), la fonction renvoie vrai et définit l'indicateur failbit. Sinon, il renvoie faux.

Cette approche vous permet de déterminer si l'entrée est un entier ou non. Si ce n'est pas le cas, vous pouvez prendre les mesures appropriées, par exemple demander à l'utilisateur de saisir à nouveau un entier valide.

Pour les scénarios dans lesquels le flux d'entrée contient des caractères non entiers suivis d'entiers, vous pouvez utiliser la boucle suivante :

int x;
while (cin.fail()) {
    cin.clear();
    cin.ignore(256, '\n');
    cin >> x;
}
Copier après la connexion

La fonction cin.clear() efface l'indicateur failbit, tandis que cin.ignore(256, 'n') ignore l'entrée restante caractères jusqu'au premier caractère de nouvelle ligne ou 256 caractères, selon la première éventualité.

Alternativement, si l'utilisateur peut saisir une chaîne non entière, vous pouvez lire l'entrée sous forme de chaîne, vérifier si elle ne contient que des nombres, et convertissez-le en un entier. Cependant, cette approche peut ne pas convenir aux cas où des nombres à virgule flottante sont attendus.

En résumé, l'extrait de code fourni vous permet de vérifier si l'entrée du flux d'entrée standard est un entier. Sinon, vous pouvez gérer la situation en conséquence, en vous assurant que seules les valeurs entières valides sont acceptées dans votre programme.

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