我有这样的代码,关于stringstream。我发现了一个奇怪的现象:为什么stringstream有这种行为?
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int main()
{
int p, q;
fstream file;
string str;
stringstream sstr;
file.open("file.txt", ios::in);
if(file.is_open()) {
while(getline(file, str)) {
sstr << str;
sstr >> p >> q;
cout << p << ' ' << q << endl;
sstr.str("");
}
}
file.close();
return 0;
}
假设我有FILE.TXT作为
4 5
0 2
在第一行第二行5
后回报和2。该计划给了我:
4 5
4 5
这意味着p
和q
分配不正确。但我检查了每次sstr.str()
与获得正确的线的字符串。
为什么stringstream有这样的行为?
什么是预期的输出呢? – Shoe
[如何清除stringstream?](http://stackoverflow.com/questions/2848087/how-to-clear-stringstream)解决你的问题? – Lithis