【发布时间】:2012-10-22 19:51:15
【问题描述】:
我对 cin 有疑问。
int main(void)
{
int a;
float b;
cin >> a >> b;
}
当我给出一个浮点数(例如 3.14)作为输入时,a 和 b 都没有得到完整的值 (3.14):输出是 a=3,b=0.14。
我知道cin 会按空格、制表符或回车分隔输入,但“点”不会,对吧?
为什么下面的代码会起作用?
int main(void)
{
int i=0;
int k=0;
float j=0;
cin >> i >> k >> j; // i =3, j=k=0
}
还有一个问题,编译器这样做对我们有什么好处?
谢谢!
【问题讨论】:
-
'.'不能是 int 的一部分,因此格式化的 iosteam 提取停止在那里解析。至于剩下的问题,我不知道你在问什么。 cplusplus.com/reference/iostream/istream/operator%3E%3E
-
一旦命中该点,除非您在其中添加更多代码,否则它将不会进行未来读取。