为什么这个函数不能第二次执行?

来源:百度知道 编辑:UC知道 时间:2024/05/16 11:29:37
void _1(void)
{
int sum = 0, i;
fflush(stdin);

while(cin>>i)
{
sum += i;
cout<<"next:";
}
cout<<"sum is"<<sum<<'\n'
}
这个函数连续调用2次的时候就会直接跳过while语句,为什么?把程序关闭后在打开没问题.

while(cin>>i)这句话有问题.
你要判断的应该是i是否为NULL,
而while(cin>>i)的意义是cin>>i不为NULL,
cin>>i 的返回值是一个istream,
就相当于
istream a = cin>>i;
while(a)
{
....
istream a = cin>>i;
}