我試圖使用字符串流來分割字符串:字符串流複製硬道理
#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()
函數檢索的行是正確的,但在分裂的過程中,我得到了最後一個詞兩次。我不確定爲什麼會發生這種情況。
問題是'while(line_stream)'。使用'while(line_stream >> name){...}' –
@gx_不會將它添加爲答案嗎? – triclosan
@triclosan因爲這不是一個完整的答案。 (並沒有解釋_why_。) –