1
我通过引用传递了一个从cin汇编到类函数的stringstream。当我在类函数中调用streamstream.str()
时,所有的输入都在那里。但是,在下一行中,当我拨打getline(stringstream,output)
时,它失败并且从不启动循环。我的stringstream有什么问题?Stringstream允许在函数中调用getline函数
#include <iostream>
#include <sstream>
using namespace std;
class HRMLMap{
public:
HRMLMap(stringstream& iss){
string line;
cout << iss.str() << endl;
while(getline(iss,line)){
cout << "it never gets here." << "\n";
}
}
};
int main() {
std::string line;
stringstream ss("", ios_base::app | ios_base::out);
for(int i = 0; i < 4; ++i){
getline(cin,line);
ss << line << endl;
}
HRMLMap myHRMLMap(ss);
return 0;
}
你怎么知道它不启动循环?你的“失败”指示是什么? –
请显示演示问题的代码。另见[mcve]。看起来像你简化它太多,所以严格来说,它并没有显示你描述的行为 – user463035818
声明SS为'stringstream ss;'你没有选择'in' - 默认应该足够好 –