Maison >développement back-end >C++ >Comment implémenter des boucles de validation d'entrée robustes en C ?
Bonne boucle de validation d'entrée utilisant cin - C
Validation d'entrée
Lorsque vous travaillez avec une entrée des utilisateurs, la validation des entrées est cruciale pour garantir l’intégrité des données et éviter les erreurs. Une méthode efficace consiste à utiliser une boucle pour inviter l'utilisateur à plusieurs reprises jusqu'à ce qu'une entrée valide soit fournie.
La boucle proposée
La question présente une boucle pour la validation des entrées :
int taxableIncome; int error; // input validation loop 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 commune
Bien que la boucle fonctionne, il existe des méthodes plus courantes et sans doute de meilleures façons d'aborder la validation des entrées.
Gestion des exceptions
La gestion des exceptions fournit un moyen plus direct de gérer les erreurs de saisie. En utilisant les blocs istringstream et try-catch, nous pouvons valider les entrées et gérer les erreurs sans nous fier aux codes d'erreur. Par exemple :
int taxableIncome; string input; while (true) { cout << "Please enter in your taxable income: "; getline(cin, input); istringstream iss(input); if (!(iss >> taxableIncome)) { cout << "Please enter a valid integer" << endl; continue; } break; }
Boucle infinie avec validation
Une autre approche consiste à utiliser une boucle infinie qui valide en permanence les entrées et invite l'utilisateur à apporter les corrections nécessaires.
int taxableIncome; while (true) { 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'); } }
Choix de l'approche
La meilleure approche dépend sur les exigences spécifiques de la demande. La gestion des exceptions est une méthode plus moderne et plus robuste, tandis que la boucle infinie fournit un moyen simple et direct de gérer 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!