是" std :: cin>>值"如果输入是EOF,则返回零?

时间:2015-10-20 12:49:56

标签: c++

考虑以下代码

int main(){ 
int sum = 0, value = 0;
while (std::cin >> value)
sum += value; 
std::cout << "sum is: " << sum << std::endl;
return 0;
}

&gt;&gt; 运算符的返回值是什么,对其进行while循环计算?程序终止于EOF输入(对于Windows,为Ctrl + Z)。这是否意味着在EOF的情况下将0存储到cin?它与EOF的ASCII值有什么关系吗?

3 个答案:

答案 0 :(得分:1)

returns basic_ifstream的引用:

basic_istream& operator>>

if的上下文中,除非在其状态中设置truestd::ios_base::failbit,否则转换为std::ios_base::badbit

答案 1 :(得分:0)

根据this reference,返回类型为istream&

答案 2 :(得分:0)

它会返回const的非std::cin引用。