为什么cin
失败,当我输入一个数字,如: 3999999999 但它适用于较小的数字,如: 5 ?
#include <iostream>
int main()
{
int n;
std::cin >> n;
if (std::cin.fail())
std::cout << "Something sucks!";
else
std::cout << n;
return 0;
}
Try:
std::cout << std::numeric_limits<int>::max() << std::endl; // requires you to #include <limits>
int
您的系统上的 可能是一个 32 位带符号的二进制补码数,这意味着它可以表示的最大值是 2,147,483,647。您的数字 3,999,999,999 比这个大,无法正确表示int
. cin
失败,提醒您存在问题。
long
可能是您系统上的 64 位整数,如果是,请尝试一下。您需要一个 64 位整数来表示 3,999,999,999。或者,您可以使用unsigned int
,它将能够表示大至 4,294,967,295 的数字(同样,在典型系统上)。当然,这意味着你不能表示负数,所以这是一个权衡。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)