Bonne boucle de validation d'entrée avec cin en C
En tant que débutant en C, comprendre les techniques efficaces de validation d'entrée est crucial. Ceci est particulièrement important lors de l’utilisation du flux d’entrée standard cin. Dans cet article, nous explorerons une approche commune basée sur une boucle pour valider les entrées de l'utilisateur et mettrons en évidence une approche alternative qui est souvent considérée comme plus propre et plus concise.
Boucle originale :
La boucle de validation d'entrée que vous avez construite utilise une boucle do-while pour demander à plusieurs reprises à l'utilisateur une entrée et vérifier erreurs :
int taxableIncome; int error; do { error = 0; cout << "Please enter in your taxable income: "; cin >> taxableIncome; if (cin.fail()) { cout << "Please enter a valid integer" << endl; error = 1; cin.clear(); cin.ignore(80, '\n'); } } while (error == 1);
Approche alternative :
Une approche alternative consiste à utiliser une boucle for et à vérifier le flux d'entrée cin pour détecter les erreurs dans la boucle :
int taxableIncome; for (;;) { cout << "Please enter in your taxable income: "; if (cin >> taxableIncome) { break; // Valid input received } else { cout << "Please enter a valid integer" << endl; cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); } }
Comparaison :
Les deux approches atteignent l'objectif de validation des entrées, mais la L'approche alternative offre certains avantages :
Conclusion :
Bien que la boucle originale soit un moyen fonctionnel de valider les entrées, l'approche alternative est préférée par de nombreux programmeurs C en raison de sa simplicité. et la flexibilité. En supprimant les variables inutiles et en utilisant les fonctions de bibliothèque standard, il fournit une solution plus simple et plus efficace pour la validation des entrées.
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!