Resetting cin stream state C++

后端 未结 3 991
说谎
说谎 2020-12-04 01:17

Here Im trying to get an integer from user, looping while the input is correct.

After entering non integer value (e.g \"dsdfgsdg\") cin.fail() returns true, as expec

3条回答
  •  既然无缘
    2020-12-04 01:27

    As a matter of style, prefer this method:

    int main() 
    {
        int a;
        while (!(std::cin >> a))
        {
            std::cout << "Incorrect data. Enter new integer:" << std::endl;
            std::cin.clear();
            std::cin.ignore(std::numeric_limits::max(), '\n');
        }
    }
    

提交回复
热议问题