在整数中存储大于 INT_MAX 的数字
Storing number larger than INT_MAX in an int
有人可以向我解释这种C++行为吗?
for (int i=0;i<3;++i){
int x;
std::cin >> x;
std::cout << x << std::endl;
}
如果我只输入一次大于 INT_MAX 的数字(如 124124124124124),则输出:
2147483647
2147483647
2147483647
我最好的猜测是它识别我的输入是一个数字,但它切片x
因为它只能容纳2147483647
。我不明白的是,为什么在只输入一次大数字后,输入"溢出"到其他输入,并打印2147483647
三次,然后结束程序。
流提取运算符>>
指出您无法流式传输那么大的数字并设置fail
位,并且不会修改 x
的值。
从该输入流(在本例中cin
)的后续读取立即失败,因此x
的值保持不变(在本例中为未定义)。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 如何用数字处理log(0)
- 最高有效数字侧的第N位
- 如何获取一个数字的前3位
- 查找最接近的大于当前数字的数字的索引
- 找到两对数字,使它们的乘积的绝对差最小化
- 我想做一个彼此不同但重复出现的数字
- 将数字转换为字母(例如:123 转换为一二三)
- C++如何计算用户输入的数字中的偶数位数
- 如何在C++中确定文本文件中的元素是字符还是数字
- 打印数字图案
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- <streamsize>C++ 中 numeric_limits::max() 的值
- 黑客级别的Mini-Max Sum
- 如何检查一个c++字符串中有多少相同的字符/数字
- 'max'匹配'std::function<const int &(const int &, const int &)>'无过载
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数