Maison >développement back-end >C++ >Comment puis-je valider la saisie d'entiers en C ?

Comment puis-je valider la saisie d'entiers en C ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-16 02:05:19879parcourir

How Can I Validate Integer Input in C  ?

Vérification du flux d'entrée entier en C

En C, vérifier l'entrée de l'utilisateur pour s'assurer qu'il s'agit d'un entier peut être difficile. Cet article présente deux méthodes pour réaliser cette validation.

Méthode 1 : Vérification de l'échec de la saisie

Pour vérifier si l'entrée est un entier, utilisez l'extrait suivant :

int x;
cin >> x;

if (cin.fail()) {
    // Not an integer
}

Si la valeur saisie ne peut pas être convertie en entier, cin.fail() renvoie true, indiquant un nombre non entier input.

Méthode 2 : Demande continue d'une entrée entière

Pour demander à plusieurs reprises un entier jusqu'à ce qu'une entrée valide soit saisie, utilisez ce code :

int x;
std::cin >> x;
while (std::cin.fail()) {
    std::cout << "Error" << std::endl;
    std::cin.clear();
    std::cin.ignore(256, '\n');
    std::cin >> x;
}

La boucle while continue jusqu'à ce qu'un entier valide soit saisi, effaçant et ignorant le précédent invalide entrées.

Exemple

Considérez le code suivant :

int firstvariable;
int secondvariable;

cout << "Please enter two integers and then press Enter:" << endl;
cin >> firstvariable;
cin >> secondvariable;

En utilisant l'une des méthodes décrites ci-dessus, vous pouvez vérifier si la première variable et la seconde variable sont des nombres entiers et gèrent les entrées non entières de manière appropriée.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn