Maison > Article > développement back-end > Comment valider la saisie numérique en C à l'aide du failbit ?
Validation de la saisie numérique en C
La validation de la saisie utilisateur est cruciale pour tout programme qui accepte des valeurs numériques. En C, une approche pour vérifier si une entrée est numérique consiste à utiliser la fonctionnalité failbit du flux d'entrée, cin.
Vérification de la validité de l'entrée avec failbit
Quand cin rencontre une entrée invalide, il définit le bit d'échec sur le flux d'entrée. Pour vérifier cette condition, vous pouvez utiliser la syntaxe suivante :
int n; cin >> n; if (!cin) // or if (cin.fail()) { // User did not input a number cin.clear(); // Reset failbit }
Si le bit d'échec est défini, cela indique que l'entrée n'était pas un nombre valide. Dans ce cas, vous devez réinitialiser le bit d'échec à l'aide de cin.clear() pour effacer l'état d'erreur.
Effacer les mauvaises entrées avec cin.ignore()
Après l'effacement le failbit, vous devez supprimer l'entrée invalide du flux en utilisant cin.ignore() :
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Skip bad input
Cette ligne lira et supprimera tous les caractères jusqu'au prochain caractère de nouvelle ligne ('n'), effectivement effacer la mauvaise entrée.
Gestion des entrées invalides
Une fois la mauvaise entrée effacée, vous pouvez inviter l'utilisateur à saisir à nouveau l'entrée. Cela peut être fait en utilisant une boucle qui continue jusqu'à ce qu'une entrée valide soit reçue :
while (cin.fail()) { // User input was invalid cin.clear(); cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // Prompt user to re-enter input cout << "Invalid input. Please enter a valid number: "; cin >> n; }
En tirant parti des méthodes failbit et cin.ignore(), vous pouvez valider efficacement la saisie numérique en C, garantissant que votre programme gère saisie utilisateur valide et invalide avec élégance.
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!