首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

请问这个小程序为什么不成功

2014-01-21 
请教这个小程序为什么不成功#include iostreamint main(){int a0,bwhile(std::cinb)a+bcoutaret

请教这个小程序为什么不成功
#include <iostream>

int main()
{
int a=0,b
while(std::cin>>b)
a+=b;
cout<<a;
return 0;
}

目的是想在屏幕上输入 1  2  3  4  然后加在一起 输出10

可是结果却是 在屏幕上 输入 1  2  3  4  后 回车陷入死循环。
[解决办法]
while(std::cin>>b)

你这个循环什么时候会结束?
永远不会结束。
因为cin的operator>>返回值为istream& 即cin本身,不会为空,该循环不会结束。
当你输入了4个数字后,仍然卡在while(std::cin>>b)这里,继续要求输入新值。

所以要么在有限次循环里做:


#include <iostream>

int main()
{
int a=0, b;
for(int i=0; i<4; i++)
{
std::cin>>b;
a += b;
}
std::cout<<a;
return 0;
}


要么输入特殊数字(如0)时停止输入:

#include <iostream>

int main()
{
int a=0, b;
while (std::cin>>b)
{
if (b == 0)
break;
a += b;
}
std::cout<<a;
return 0;
}

热点排行