Maison >développement back-end >C++ >Comment puis-je valider efficacement la saisie d'entiers de l'utilisateur en C ?
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. }
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; }
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!