我怎样才能在不出错的情况下保存一个unsigned long

How can I cin an unsigned long long without error?

本文关键字:保存 long unsigned 一个 情况下 出错      更新时间:2023-10-16

好的,这是我的代码:

    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——放进去,即使是这些cin.ignore(),也会自动把一些东西放进去q。我在这里没有看到什么问题?如果你需要更多的信息,如果不是很明显,请告诉我。

[添加注释信息:输入值为92896134244099469431,超过266]

你说你输入了一个"巨大的值"。如果该值超过unsigned long long的上界,则cin >> p;将失败。

快速实验表明,一旦发生这种情况,cin >> q;不做任何事情,并且q中没有存储任何值。p的值可能是18446744073709551615,或者264-1。

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

您还需要更新您的问题,以准确地指出您提供给程序的输入

相关文章: