注册 登录
编程论坛 C++教室

请教一个读入未知数目的输入问题

sunhang777 发布于 2010-07-22 12:54, 913 次点击
#include <iostream>
int main()
{
    int sum=0,value;

    while(std::cin>>value)
        sum+=value;

    std::cout<<"Sum is : "<<sum<<std::endl;
    return 0;
}


这是c++ Primer 第四版上面的一个例子,在第15页
程序输入:3 4 5 6
输出:sum is 18
 

我在VC中运行输入后,没有输出结果。请大家指导一下,谢谢.
7 回复
#2
sunhang7772010-07-22 13:03
再加一句,如果是输入:3 4 5 6 a  
就可以得到Sum=18
a可以是任意字母
 
不清楚为什么输入任意字母就可以跳出循环,请大家知道一下。
#3
kspliusa2010-07-22 13:57
因为你的value定义的类型是int,  这样当你输入字符时就会退出循环了啊。。类型检查
#4
pangding2010-07-23 00:32
嗯,3 楼正解。
 
while 里的那个条件,大家有没有仔细想过?
本来 operator>> 应该返回什么?应该返回流,这样才能 cin >> a >> b 类似的这么写,因为 cin >> a 返回的是 cin。
所以可以继续 cin >> b。那 cin 怎么能当条件放在 while 里判断呢?
 
呵呵,楼主正在看的那本书里应该有解释。(虽然我没看过,但听说讲的挺细的。我这个问题应该解释了。)
多动动脑筋理解透一些。回头楼主想明白了,上来回答回答我的疑惑。
#5
魔_ZeroDJ2010-07-23 16:56
这个要检查while里的判断条件,应该是判断条件的问题
#6
sunhang7772010-07-23 23:12
问题我明白了.四楼的朋友,你可以看看http://blog.
#7
pangding2010-07-23 23:35
嗯,嗯~~
有自己研究问题的兴趣之后,就不愁学不好编程了~
#8
ToBeOOP2010-07-24 18:57
6楼的传送门挺好的,赞一个!
1