Lorsque vous travaillez avec l'entrée de l'utilisateur, il est essentiel de s'assurer que les données entrées s'alignent avec le format attendu. Dans les cas où des valeurs entières sont requises, vous pouvez rencontrer des scénarios où 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 est un entier ou non. Voici une ventilation 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 True et définit l'indicateur Failbit. Sinon, il renvoie false.
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 des mesures appropriées, telles que l'incitation de l'utilisateur à réintégrer un entier valide.
pour les scénarios où le flux d'entrée contient des caractères non INT suivis par des 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') saute les caractères d'entrée restants jusqu'au premier caractère Newline ou 256 caractères, selon la première éventualité. Cependant, cette approche peut ne pas convenir aux cas où des numéros à 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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3