如何在没有错误的情况下判断无符号的长整数?

时间:2013-06-12 22:35:11

标签: c++

好的,这是我的代码:

    cout << "What is your p value?" << endl;
    unsigned long long p;
    cin >> p;
    cin.ignore();
    cout << endl;

    cout << "What is your q value?" << endl;
    unsigned long long q;
    cin >> q;
            cin.ignore();
    cout << endl;

我把第一个巨大的值 - 即p - in,即使使用这些cin.ignore(),也会自动输入q。我在这里看不到什么问题?如果您不需要更多信息,请告诉我。

1 个答案:

答案 0 :(得分:1)

你说你输入了“巨大的价值”。如果该值超出unsigned long long的上限,则cin >> p;将失败。

快速实验表明,一旦发生这种情况,cin >> q;不会执行任何操作,q中也不会存储任何值。 p的值可能为18446744073709551615,或2 64 -1。

您需要检查每个输入操作是成功还是失败,并决定如何处理任何错误。

您还需要更新您的问题,以准确指出您为计划提供的输入。