Установите cin.fail () вручную - PullRequest
1 голос
/ 09 апреля 2020

Я хочу вызвать ошибку cin.fail (), если введенное целое число больше фиксированного числа? Как я могу это сделать?

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

1 Ответ

1 голос
/ 09 апреля 2020

Вы можете установить failbit, используя setstate:

Пример

#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";
    }
}
...