Maison > développement back-end > C++ > Comment puis-je gérer gracieusement les entrées invalides en C ?

Comment puis-je gérer gracieusement les entrées invalides en C ?

Linda Hamilton
Libérer: 2024-12-19 22:00:21
original
237 Les gens l'ont consulté

How Can I Gracefully Handle Invalid Input in C  ?

Résolution des entrées invalides en C

En C, la validation des entrées est cruciale pour gérer les entrées utilisateur inattendues ou incorrectes. Cela garantit que votre programme peut gérer divers scénarios d'entrée et évite les erreurs potentielles.

Considérez une situation dans laquelle votre programme demande un entier mais reçoit un caractère à la place. Pour éviter une boucle infinie provoquée par cette inadéquation, il est important d'effacer l'indicateur d'entrée incorrecte défini par std::cin et de supprimer l'entrée non valide.

// Clear bad input flag and discard invalid input
while (std::cout << "Enter a number" && !(std::cin >> num)) {
    std::cin.clear(); // Clear bad input flag
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Discard input
    std::cout << "Invalid input; please re-enter.\n";
}
Copier après la connexion

Cet extrait de code vérifie si l'opération d'entrée échoue, puis efface l'indicateur d'entrée incorrecte à l'aide de std::cin.clear() et supprime l'entrée non valide avec std::cin.ignore(). En effectuant une boucle jusqu'à ce qu'une entrée valide soit reçue, votre programme peut empêcher les boucles infinies et gérer les entrées invalides avec élégance.

Alternativement, vous pouvez capturer l'entrée sous forme de chaîne et la convertir en entier en utilisant std::stoi ou une autre méthode. qui permet la validation de la conversion. Cette approche offre une flexibilité dans la gestion d'une gamme de scénarios d'entrée.

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