Чтение «unsigned int» с использованием «cin»

Я пытаюсь прочитатьunsigned int с помощьюcin следующее:

#include <limits.h>
#include <iostream>

using namespace std;

int main(int argc, char* argv[])
{
    unsigned int number;

    // UINT_MAX = 4294967295
    cout << "Please enter a number between 0 and " << UINT_MAX << ":" << endl;

    cin >> number;

    // Check if the number is a valid unsigned integer
    if ((number < 0) || ((unsigned int)number > UINT_MAX))
    {
        cout << "Invalid number." << endl;
        return -1;
    }
    return 0;
}

Однако всякий раз, когда я ввожу значение, превышающее верхний предел целого числа без знака (UINT_MAX), программа отображает3435973836, Как проверить, попадает ли введенный пользователем вклад между0 вUINT_MAX?

Ответы на вопрос(5)

Ваш ответ на вопрос