Я пытаюсь прочитать 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
?