Validation de la saisie numérique en C
Dans un programme qui traite la saisie de nombres entiers, il est crucial de s'assurer que les utilisateurs fournissent des nombres valides. Malheureusement, la fonction atoi() ne suffit pas lorsqu'il s'agit d'entiers à plusieurs chiffres. Cet article explore des méthodes alternatives pour vérifier l'entrée numérique.
Utilisation du failbit
Le flux d'entrée de C (cin) définit le failbit lorsqu'il rencontre une entrée qu'il ne peut pas analyser. Cela peut être exploité pour valider l'entrée comme suit :
int n; cin >> n; if(!cin) { // User did not input a number cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); }
Gestion du débordement d'entrée
Lorsque les nombres entiers dépassent la valeur maximale autorisée, cin définit également le bit d'échec. Pour éviter cela, vérifiez l'état du flux avant de lire l'entrée :
while(!cin.eof()) { int n; cin >> n; if(!cin) { // Input error occurred cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); } else { // Valid input process(n); } }
Cette boucle continue de lire et de valider l'entrée jusqu'à ce que la fin du fichier (EOF) soit atteinte.
Autre Alternatives
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!