标题:请教一道简单的C++
只看楼主
kindol
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-19
结帖率:100%
已结贴  问题点数:20 回复次数:4 
请教一道简单的C++
各位大佬,我打了一道简单的C++如下,但是这里有个问题不懂,代码以及输入如下:

代码:
#include <iostream>
using namespace std;
int main() {
    int sum = 0, val;
    while(cin>>val)
        sum += val;
    cout<<sum<<endl;
    return 0;
}
输入:10,20,30,40
这个时候我是懂的,输入到40依旧是不会有输出的,除非加上文件结束符

但是如果输入改为这样,代码不变
输入:10,20,30,40,5.5
这里加上了5.5,竟然就会有输出了,而且输出就变成了105。
这里我的问题在于输入5.5的时候,为什么他成功读进去了val里面,但是while语句在执行完这一次后就主动结束了
麻烦各位大佬帮我看看

[此贴子已经被作者于2017-3-20 13:41编辑过]

搜索更多相关主题的帖子: include return 而且 
2017-03-20 13:38
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:20 
贴代码,而非贴图

如果输入数据和指定输入格式不匹配,那么读入失败
2017-03-20 13:41
kindol
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-19
得分:0 
回复 2楼 rjsp
读入失败,但是为什么输出会是105,不是100?
2017-03-20 13:44
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
以下是引用kindol在2017-3-20 13:44:18的发言:

读入失败,但是为什么输出会是105,不是100?

输入 10 20 30 40 5.5 后,依次成功读取到 10 20 30 40 5
然后试图读取 .5 时失败
2017-03-20 13:58
kindol
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2016-3-19
得分:0 
回复 4楼 rjsp
哈,好的,懂了,谢谢大神
2017-03-20 14:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-475281-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.072898 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved