Yaroslav Hladkyi
Yaroslav Hladkyi

Reputation: 335

Set cin.fail() manually

I want to raise cin.fail() error if inputted integer greater then fixed number? How can I do that?

int a;
cin >> a;
if (a > 10)
   //raise cin.fail()

Upvotes: 2

Views: 715

Answers (1)

anastaciu
anastaciu

Reputation: 23832

You can set failbit using setstate:

Example

#include <iostream>
#include <sstream>

int main()
{
    int a;

    std::cin >> a;

    if(a > 10)   
        std::cin.setstate(std::ios_base::failbit);

    if (std::cin.fail()) {
        std::cout << "fails\n";
    }
}

Upvotes: 2

Related Questions