有人可以帮助我理解这种串流行为吗?
stringstream temp;
temp << "342 1 ";
int a;
while (temp >> a) {
cout << a << endl;
}
temp << "56" << " ";
temp >> a;
cout << a << endl;
哪个输出:
342
1
1
我希望它能输出
342
1
56
这是在2015年的视觉工作室中编制的。
答案 0 :(得分:5)
读取值1后,下一个while
将到达文件结尾并将流置于错误状态。然后,任何进一步的读取都将失败,并保持a
不变。
您可以通过调用temp.clear()
清除错误状态。