1
私はcinからクラス関数に組み立てたstringstreamを参照渡ししています。私がstreamstream.str()
をクラス関数で呼び出すと、すべての入力がそこにあります。しかし、次の行でgetline(stringstream,output)
と呼ぶと、失敗し、ループを開始しません。私のストリングストリームに何が問題なのですか?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
'stringstream ss;'を選択していません。デフォルトで十分です。 –