例如,我有以下代码:
#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
在获得只有一个单词的行后不会更新。
请向我解释一下,我不想要代码的正确答案,我想知道为什么。
谢谢你。