Maison > développement back-end > C++ > Comment puis-je améliorer l'efficacité de la boucle de validation d'entrée C ?

Comment puis-je améliorer l'efficacité de la boucle de validation d'entrée C ?

Mary-Kate Olsen
Libérer: 2024-12-26 09:45:10
original
378 Les gens l'ont consulté

How Can I Improve C   Input Validation Loop Efficiency?

Valider les entrées de manière transparente avec la boucle de validation d'entrée de C

Dans votre quête pour maîtriser C, la validation des entrées est primordiale. Vous êtes tombé sur une approche valide, mais explorons les options alternatives.

Votre approche

Votre boucle tourne autour de la vérification cin.fail(), qui détecte les formats d'entrée incorrects . Si un nombre non entier est saisi, il affiche un message d'erreur et efface le tampon d'entrée en utilisant cin.clear() et cin.ignore(). Bien que cette approche soit raisonnable, certaines nuances peuvent être améliorées.

Une approche alternative

Au lieu de vous fier à cin.fail(), vous pouvez vérifier directement si l'opération de saisie (cin >> taxableIncome) réussit ou échoue. En cas d'échec, gérez l'erreur avec élégance avec un message et effacez le tampon d'entrée comme avant :

int taxableIncome;

for (;;) {
    cout << "Please enter in your taxable income: ";
    if (cin >> taxableIncome) {
        break;
    } else {
        cout << "Please enter a valid integer" << endl;
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
    }
}
Copier après la connexion

En utilisant cette boucle, vous évitez de définir et de vérifier une variable d'erreur explicite, simplifiant ainsi le processus de validation. De plus, effacer le tampon d'entrée à l'aide de numeric_limits::max() garantit que tous les caractères non valides sont supprimés.

Conclusion

Les deux approches sont efficaces pour la validation des entrées. , mais la boucle révisée offre une syntaxe plus concise et lisible. En fin de compte, la meilleure méthode dépend de vos préférences et des exigences spécifiques de 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