如何检查 cin 在 c++ 中是否为 int

How to check if cin is int in c++?

本文关键字:c++ 是否 int cin 何检查 检查      更新时间:2023-10-16

我正在编写一个程序,目前只接受 int 作为用户输入,如果不接受,请继续询问用户,直到获得正确的整数。下面是代码:

cout << "enter two integers: " << endl;
string input1, input2;
cin >> input1;
cin >> input2;
while (//if they are not integers)
...//ask again

如您所见,我使用字符串来存储输入,但我不知道如何检查此字符串仅包含一个整数。

如果用户没有

输入预期的正确数据类型,cin将切换它failbit。将输入的数据类型更改为int并选中此failbit将允许您验证用户输入。

#include <limits> // This is important!
cout << "enter two integers: " << endl;
int input1, input2;
std::cin >> input1;
std::cin >> input2;
while (!std::cin.good())
{
    std::cin.clear();
    std::cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
    ...//ask again
}

你根本不应该使用string

int input1, input2;
cin >> input1;

然后你可以检查cin是否失败

if (!cin) {
     // input was not an integer ask again
}