如何捕获c中的无效输入?

我是一个(有点)经验丰富的python程序员,试图迁移到C.我希望能够捕获无效的用户输入.例如,如果变量需要一个整数,并且用户键入一个字符串,我想捕获该错误.在python 3中,语法是:

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

在c中我读到语法是Try,catch.我试图这样做,但它不起作用.这是我在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!"
}

如何在c中捕获无效输入?是的,我正在使用此类的头文件.如果您需要这些内容,请告诉我.如果我找到了答案,我会继续搜索网页并发帖!

解决方法:

您需要#include< limits>

int x;
std::cout << "Enter a number: ";
std::cin >> x;
while(std::cin.fail()) {
    std::cin.clear();
    std::cin.ignore(numeric_limits<streamsize>::max(),'\n');
    std::cout << "Bad entry.  Enter a NUMBER: ";
    std::cin >> x;
}
std::cout << "x = " << x << std::endl;

有一个模板给你.

上一篇:表字段与mysql关键字冲突


下一篇:springMVC_02hello案例