【发布时间】:2016-10-31 08:02:12
【问题描述】:
假设我有以下变量定义,我尝试从标准输入中读取值。
int ia = 3;
double da = 0;
std::cin >> ia >> da;
现在我在标准输入中输入以下值,-4.23 -5.01
如果我现在打印 ia 和 da ,da 是 .23 而 ia 是 -4。
为什么 C++ 将 -4.23 拆分为整数部分和浮点部分,换句话说,为什么 .23 保留在输入流中以供后续读取? -4.23 不会简单地被截断为 -4 然后读入ia 吗?
现在是一个不同的场景,假设我有与上面相同的代码,但这次我将数字 .23 输入到标准输入流(这只是控制台)ia 存储 0(好吧,这似乎遵循上述行为)但这次da 包含 0 ?似乎在这种情况下,0.23 被截断并读入为 0,而 .23 没有像上面那样读入da。
我无法理解在这些情况下究竟应该发生什么。这里发生了两种不同的事情。
【问题讨论】:
标签: c++ inputstream