问个简单的C++问题

#include<iostream>intmain(){intsum=0,value;while(std::cin>>value)sum+=value;std::cout... #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 中文版》上的例子写的,一模一样,怎么执行的时候,按书上的执行,没有输出啊?
然后我改了 一下
#include <iostream>
int main()
{
int sum = 0, value;
while (std::cin >> value) {
sum += value;
std::cout << "sum is: " << sum << std::endl;
}
return 0;
}
然后我输入 3 4 5 6, 结果是sum is 3
sum is 12
sum is 17
sum is 23
怎样去掉前3个呢?
我看的是1.4.4的那个 读入未知数的输入,求总和的。
求帮助!!!
展开
 我来答
丷爫魚
2012-01-21 · 超过11用户采纳过TA的回答
知道答主
回答量:17
采纳率:0%
帮助的人:32.1万
展开全部
楼主,书上的程序是对的,你的程序是错的。
你可以试试输入 3 4 5 6 然后输入一个非数字,比如:a,然后按ENTER,就得到结果了
原因:std::cin >> value函数当接受到一个非整型(为什么是整型,因为value是int)时返回0,
只有这个时候,才能退出while循环,从而输出。
你写的程序输出语句在while循环里面,每执行一次循环就输出一次,你想要去掉前3个必须把输出放在循环体的外面,才能保证只执行一次输出。
longinus_dean
2012-01-21 · TA获得超过2282个赞
知道小有建树答主
回答量:1097
采纳率:50%
帮助的人:1522万
展开全部
#include <iostream>
int main()
{
int sum = 0, value;
while (std::cin >> value) {
sum += value;
}
std::cout << "sum is: " << sum << std::endl;
return 0;
}
注意看while里面的改变
追问
我是在VC里执行的,出来个黑色窗口后,我像以往那样输入几个数字,回车,然后什么都没出来……
追答
想看结果在windows下可以用ctrl + c 这样可以算是输入一个eof
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
人For我我For人
2012-01-21 · 超过11用户采纳过TA的回答
知道答主
回答量:22
采纳率:0%
帮助的人:34.8万
展开全部
如果用窗口运行,那while的判断条件xtd::cin>>value会一直执行,因为你如果不强制结束程序,那它会一直等用户输入值进去,这样永远结束不了。
如果要解决,可以采用文件读写方式。
头文件加上#include <stdio.h>
#include <stdlib.h>
int main(){
freopen("sum.txt","r",stdin);
//主函数体
system("pause");
fclose(stdin);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ZSNH_KHY
2012-01-21 · TA获得超过313个赞
知道小有建树答主
回答量:451
采纳率:0%
帮助的人:416万
展开全部
#include <iostream>
int main()
{
int sum = 0, value;
while (std::cin >> value&&value!=5)
sum += value;
std::cout << "sum is: " << sum << std::endl;
return 0;
}
这样就可以了!5改成你想结束的按键!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zzu_liuwei
2012-01-21 · TA获得超过372个赞
知道小有建树答主
回答量:200
采纳率:0%
帮助的人:225万
展开全部
int main()
{
int sum=0,value;
std::cin>>value;
while(value) //当输入0时程序结束
{
sum+=value;
std::cin>>value;
}
std::cout<<"sum is: "<<sum<<std::endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式