Próbuję odczytać unsigned int
użyciu cin
następująco:czytanie „unsigned int” za pomocą „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;
}
Jednak ilekroć wprowadzić wartość większą niż górna granica liczba całkowita bez znaku (UINT_MAX
) program wyświetla 3435973836
. Jak sprawdzić, czy dane wejściowe podane przez użytkownika mieszczą się między 0
a UINT_MAX
?
'if ((liczba <0) || ((unsigned int) number> UINT_MAX))' Nie mogę nawet opisać, jak błędne jest to. – ildjarn
Może zacznij od czegoś prostszego i zdecydowanie dobrej książki. –
Dość podstawowe, ale rozsądne pytanie. Ale bardzo długo to wyjaśniać. – Mysticial