Maison >développement back-end >C++ >Comment garantir une entrée entière valide en C ?

Comment garantir une entrée entière valide en C ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-12 17:31:09385parcourir

How to Ensure Valid Integer Input in 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!

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