我是一个(有点)经验丰富的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;
有一个模板给你.