たとえば、次のコードがあります。
#include <iostream>
#include <sstream>
using namespace std;
int main(){
stringstream ss;
string buffer,first_word;
int i;
for(i = 0; i < 4; i++){
getline(cin,buffer); // getting line
ss.str(buffer); // initializing the stream
ss>>first_word;
cout<<first_word<<endl;
ss.str(string()); // cleaning stream
}
return 0;
}
この入力で:
line one with spaces
line two with spaces
alone
line four with spaces
私が期待する出力は、次のような行の最初の単語です。
line
line
alone
line
しかし、私はこれを得ています:
line
line
alone
alone
そのため、stringstream
単語が 1 つしかない行を取得した後は更新されません。
これを説明してください。コードで正しい答えを求めたくないのですが、その理由を知りたいのです。
ありがとうございました。