请教这个小程序为什么不成功
#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;
}
#include <iostream>
int main()
{
int a=0, b;
while (std::cin>>b)
{
if (b == 0)
break;
a += b;
}
std::cout<<a;
return 0;
}