我正在尝试使用 stringstream 拆分字符串:
#include <fstream>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main(){
ifstream fp;
string name;
fp.open("in.txt");
while (fp){
string line;
getline(fp, line);
cout << line << endl;
istringstream line_stream(line);
while (line_stream){
line_stream >> name;
cout << name << " ";
}
}
return 0;
}
这是 in.txt :
cat bat rat sat
这是我得到的输出:
cat bat rat sat
cat bat rat sat sat
从getline()
函数中检索到的行是正确的,但是在拆分过程中,我得到了最后一个单词两次。我不确定为什么会这样。