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

Comment puis-je valider efficacement la saisie de l'utilisateur avec `cin` en C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-15 22:13:15287parcourir

How Can I Effectively Validate User Input with `cin` in C  ?

Validation des entrées avec cin en C : un guide complet

La validation des entrées joue un rôle crucial pour empêcher les entrées non valides de compromettre l'intégrité des programmes . Une technique couramment utilisée en C pour la validation des entrées consiste à utiliser le flux cin.

La boucle construite dans l'extrait de code est une méthode valide pour la validation des entrées. Il utilise une boucle de mise en œuvre pour demander en permanence à l'utilisateur un revenu imposable, tout en traitant efficacement les entrées invalides. Si l'entrée n'est pas un entier valide, un message d'erreur s'affiche et cin est effacé et ignoré pour garantir que la boucle peut continuer.

Cependant, il existe des approches alternatives que certains considèrent comme plus idiomatiques ou efficaces :

  • Utilisation d'exceptions : Certains programmeurs préfèrent utiliser des exceptions pour gérer les erreurs d'E/S. Au lieu de vérifier les erreurs dans la boucle, C fournit une exception qui peut être interceptée pour gérer tout problème de saisie potentiel.
  • Boucle simplifiée : Alternativement, on peut simplifier la boucle en supprimant l'erreur variable et incorporant directement l’entrée lue dans la condition de boucle. Cela simplifie le code et élimine le besoin d'une variable supplémentaire pour suivre les erreurs.

Voici un exemple de boucle simplifiée :

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');
    }
}

En fin de compte, la meilleure approche pour la validation des entrées dépend des préférences personnelles et des exigences spécifiques du programme. La boucle présentée dans le code original est une solution valide et fonctionnelle, tandis que les alternatives offrent de légères variations et efficacités.

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!

Déclaration:
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