【发布时间】:2012-03-23 09:42:20
【问题描述】:
我正在尝试使用cin 读取unsigned int,如下所示:
#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 之间?
【问题讨论】:
-
if ((number < 0) || ((unsigned int)number > UINT_MAX))我什至无法形容这是多么误导。 -
也许从更简单的开始,绝对是一本好书。
-
相当基本但合理的问题要问。但解释起来很长。
-
如果它不适用于 Long,我建议您尝试使用 char 数组并将其转换为 unsigned int。
标签: c++ windows int unsigned cin