为什么在std::cin>>value里等待输入按回车还是走不出缓冲区
#include<iostream>int main()
{
int sum = 0;
int value;
while (std::cin>>value)
sum += value;
std::cout<<"sum is:"<<sum;//<<std::endl;
return 0;
} cin>>value操作返回的是流对象“>>”,不会像scanf()返回读取数据的个数的。
所以输入回车之后返回的还是“>>”,自然还会继续循环的
要结束循环在win系统下按CTRL+C, Linux下按CTRL+D 可是把std::cin>>value改成scanf("%d",&value)也是一样的啊 如果我将程序改成这样它就能成功的读入:
#include<iostream>
int main(void)
{
} 如果我将程序改成这样它就能成功的读入:
#include<iostream>
int main(void)
{
int sum = 0;
int value;
while (std::cin>>value)
{
sum += value;
std::cout<<"sum is:"<<sum;//<<std::endl;
}
return 0;
}
页:
[1]