Comment attraper une entrée non valide en c++?

Je suis (un peu) connu python programmeur d'essayer de migrer vers C++. Je veux être capable d'attraper entrée utilisateur non valide. Par exemple, si une variable nécessite un entier, et que l'utilisateur saisit une chaîne de caractères, je veux rattraper cette erreur. En python 3, la syntaxe est la suivante:

try:
    #block of code you want to run
except ValueError:
    #Block of code to be run if the user inputs an invalid input

En c++, j'ai lu que la syntaxe est Try, catch. Je suis en train de le faire, mais sa ne fonctionne pas. voici mon code en c++:

#include "Calculator.h"
#include <iostream>
#include <exception>

using namespace std;

Calculator::Calculator()
{
}

int Calculator::Calc()
{
    cout << "Enter a number " << endl;
try
{
    cin >> a;
}
catch (logic_error)
{
    cout << "An error has ocurred! You have entered an invalid input!"
}

Comment puis-je attraper une entrée non valide en c++? Oui, je suis en utilisant un fichier d'en-tête pour cette classe. Si vous avez besoin de ces matières, laissez-moi savoir. Je vais continuer à chercher sur le web et après si j'ai trouvé une réponse!

  • Je ne voudrais pas utiliser les exceptions pour valider la saisie de l'utilisateur. Je voudrais choisir la méthode de conversion appropriée pour, disons, de string en int, et le message que l'utilisateur en cas d'échec de la validation, puis reprompt pour l'entrée.
InformationsquelleAutor JohnBobSmith | 2013-10-31