Estoy intentando leer un unsigned int
usando cin
como sigue:lectura 'unsigned int' usando '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;
}
Sin embargo, cada vez que introduzca un valor mayor que el límite superior del número entero sin signo (UINT_MAX
), el programa muestra 3435973836
. ¿Cómo verifico si la entrada dada por el usuario cae entre 0
a UINT_MAX
?
'if ((number <0) || ((unsigned int) number> UINT_MAX))' No puedo describir lo equivocado que es esto. – ildjarn
Tal vez comience con algo más simple, y definitivamente un buen libro. –
Pregunta bastante básica pero razonable de hacer. Pero muy largo para explicar. – Mysticial