Maison >développement back-end >C++ >Comment garantir une entrée entière valide en C ?
Vérification de la validité des entiers saisis par l'utilisateur
Dans le code C fourni, l'objectif est de développer un programme qui lit deux entiers de l'utilisateur et effectue des opérations mathématiques de base sur eux. Cependant, une considération importante se pose : comment s'assurer que l'utilisateur saisit des entiers valides.
Pour vérifier si l'entrée est un entier, nous pouvons utiliser la fonction cin.fail(). Il renvoie false si l'entrée est valide et true si elle n'est pas valide ou contient des caractères non numériques.
Vérification des entiers valides
L'extrait de code suivant montre comment vérifiez la validité de la saisie de l'utilisateur pour les deux entiers :
int firstvariable, secondvariable; cin >> firstvariable; if (cin.fail()) { // Not an integer; handle appropriately } cin >> secondvariable; if (cin.fail()) { // Not an integer; handle appropriately }
Si la saisie n'est pas valide, une gestion des erreurs est nécessaire. Cela peut impliquer l'affichage d'un message, l'effacement du flux d'entrée et une nouvelle invitation à l'utilisateur à saisir un entier correct.
Gestion des entrées invalides
Pour garantir une saisie continue jusqu'à un entier valide est saisi, nous pouvons implémenter une boucle qui continue jusqu'à ce que l'entrée passe le contrôle de validité :
while (cin.fail()) { // Clear the input stream cin.clear(); // Ignore the invalid input cin.ignore(256, '\n'); // Re-prompt the user for a valid integer cout << "Please enter a valid integer: "; // Retry the input cin >> firstvariable; }
Dans cette boucle, l'entrée Le flux est effacé, l'entrée non valide est ignorée et l'utilisateur est invité à saisir un entier valide.
Exemple
Le code suivant fournit un exemple complet qui vérifie entrée entière valide et gère les entrées invalides :
#include <iostream> using namespace std; int main() { int firstvariable, secondvariable; cout << "Please enter two integers: "; cin >> firstvariable; while (cin.fail()) { cin.clear(); cin.ignore(256, '\n'); cout << "Invalid input. Please enter a valid integer: "; cin >> firstvariable; } cin >> secondvariable; while (cin.fail()) { cin.clear(); cin.ignore(256, '\n'); cout << "Invalid input. Please enter a valid integer: "; cin >> secondvariable; } // Perform mathematical operations on the valid integers return 0; }
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!