0

OK、これが私のコードです:

    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()の 's があっても q に何かが自動的に入れられます。ここで表示されない問題は何ですか? 明らかでない場合は、さらに情報が必要な場合はお知らせください。

[コメントから情報を追加: 入力値はで、2 6692896134244099469431を超えています。]

4

1 に答える 1

2

あなたは「巨大な値」を入力したと言います。その値が の上限を超えると、unsigned long long失敗cin >> p;します。

簡単な実験では、それが発生するとcin >> q;は何もせず、 に値が格納されないことが示されていqます。の値は、pおそらく18446744073709551615、または 2 64 -1 になります。

各入力操作が成功したか失敗したかを確認し、エラーの処理方法を決定する必要があります。

また、質問を更新して、プログラムに提供した入力を正確に示す必要があります。

于 2013-06-12T22:56:17.927 に答える