如何检查验证

时间:2017-03-26 16:15:25

标签: c++ c++builder

当我尝试给出像“Hello”这样的字符串输入时,它会产生错误。当我给出字符串输入字符串时,如何检查它是否应该让我给出正确的输入?

    int y,m,d,h,min,s;
    do
    {
        cout<<" Please enter the year: ";
        cin>>y;
    }while(y < 1970 || y > 2020);

2 个答案:

答案 0 :(得分:1)

如果输入无法转换为int(在您的情况下),则failbit将设置为std::cin。这可以通过调用cin.fail()来检索。

 std::cin >> y;
 if (std::cin.fail()) { 
     std::cout << "data entered is not of int type"; 
 }

您也可以使用!std::cin代替std::cin.fail()

答案 1 :(得分:1)

#include "iostream"
#include<limits>

using namespace std;

int input()
{
    int y;
    do
    {
        std::cin.clear();
        std::cin.ignore(numeric_limits<streamsize>::max(), '\n');
        std::cout << "Give the year" << std::endl;
        std::cin >> y;
    }
    while (std::cin.fail() || y < 1970 || y > 2020);
    return y;
}

main()
{
   int x = input();
}