我写的一段小代码有点不懂

albzcj123 2012-02-15 04:13:40
#include<iostream>
using namespace std;
int main()
{
int sum=0,i;
while(cin>>i)
sum=sum+i;
cout<<"the sum is :"<<sum<<endl;
return 0;
}
谁能帮我解释一下呢,看书上的看不懂
...全文
147 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
albzcj123 2012-04-15
  • 打赏
  • 举报
回复
嗯,懂啦,谢谢
Fishfork1992 2012-02-15
  • 打赏
  • 举报
回复
5楼说得比较清楚了 在windows环境下 采用的阻塞式检查方式。所以使用ctrl+z来作为流结束的标志。来跳出当前的while循环。 4楼说的 如果定义成char型 那么数字和字符都将无法结束当前while循环。
无芒 2012-02-15
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
int main()
{
int sum=0,i; //建议初始化i
while(cin>>i) //从键盘输入数值类形数据 输入字符则跳出循环(遇错或遇到文件尾时读取结束)可以有以下形式输入 1 2 3 + 回车 或者 1 + 回车 程序会先将 i 初始化,然后与Sum相加 ,接着继续将2赋值给i,相加,继续赋值 这时候程序不会结束,需要你输入Ctrl+z 加回车结束 (至于为什么可以搜下这篇文章《C++关于while(cin)-缓冲相关》)用来跳出当前的while循环
sum=sum+i;
cout<<"the sum is :"<<sum<<endl;
return 0;
}
qixing1115 2012-02-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 sunyongliang118 的回复:]
#include<iostream>
using namespace std;
int main()
{
int sum=0,i;//变量声明
while(cin>>i)//循环输入
sum=sum+i;//和数递增
cout<<"the sum is :"<<sum<<endl;//退出循环时,输出和数
return 0;
}
[/Quote]
输入非数字如:a,b c应该就可以退出循环了
振翅高飞 2012-02-15
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
int main()
{
int sum=0,i;//变量声明
while(cin>>i)//循环输入
sum=sum+i;//和数递增
cout<<"the sum is :"<<sum<<endl;//退出循环时,输出和数
return 0;
}
Softwaring 2012-02-15
  • 打赏
  • 举报
回复
C++ Primer 上的吧

看着很面熟
taoyh2002 2012-02-15
  • 打赏
  • 举报
回复
输入一些数求和,直到按ctrl + z退出
你这程序有问题啊,按ctrl + z退出又看不到输出的和

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧