标题:请教一个读入未知数目的输入求和问题
只看楼主
baoyewei99
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-5-20
结帖率:0
已结贴  问题点数:10 回复次数:4 
请教一个读入未知数目的输入求和问题
#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
再加一句,如果是输入:3 4 5 6 a  
就可以得到Sum=18
a可以是任意字母

不清楚为什么输入任意字母就可以跳出循环,请大家知道一下。


我在VC中运行输入后,没有输出结果。请大家指导一下,谢谢.
再请教一下   正确的程序代码?  谢谢!
搜索更多相关主题的帖子: 未知数 
2011-05-20 19:56
Toomj
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:257
专家分:1826
注 册:2011-5-17
得分:5 
while(cin>>a)
将会一直测试输入流是否正常,如果输入流正常,就会继续循环,如果输入流错误,或者达到文件末尾(在windows下Ctrl+Z,在Linux下Ctrl+D),循环就会终止。

楼主的代码中输入字母(如a)就属于输入流错误,循环结束,输出结果
2011-05-20 20:24
celeli
Rank: 2
等 级:论坛游民
帖 子:12
专家分:25
注 册:2011-4-6
得分:5 
std::cin>>value;把这句话放出来试试,写在while语句的前面如下:
std::cin>>value;
while(value){}
2011-05-21 09:02
NEWOOD
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2010-3-4
得分:0 
回复 2楼 Toomj
好好哈,多谢啦 ! 不过怎么在没有错误的输入流下就可以 像书本那样正常输出呢 ???
2012-03-24 15:39
NEWOOD
Rank: 1
等 级:新手上路
帖 子:5
专家分:1
注 册:2010-3-4
得分:0 
回复 楼主 baoyewei99
好好,不过window下,用VC ,用 ctrl + d  终止的 !
2012-05-01 19:17



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




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

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