ありません。私の質問は、これらの2行の周りでistringstream - なぜ次は私のコードの簡易版であるリセット機能
#include <iostream>
#include <string>
#include <sstream>
int main() {
std::istringstream f;
f.clear();
std::string s("line1");
f.str(s);
std::string line;
while (std::getline(f, line)) {
std::cout << line << std::endl;
}
f.clear(); // must both clear() and str()
f.str(s);
while (std::getline(f, line)) {
std::cout << line << std::endl;
}
return 0;
}
:f.str(s)
を呼び出す
f.clear(); // must both clear() and str()
f.str(s);
はのために問題があります私が見つけたのは、clear()
がgetline()
の呼び出しで終了した後に何も読み取られないということです。
私はistringstreamインターフェイスを見て、リセットされた種類の機能は見ていませんが、何かが恋しくなる場合に備えて尋ねます。
str()
は私のために動作しない理由 - 私のクラスには、入力としてはistream *を取り、それはファイルや文字列である可能性があり、実際の原稿を持っていません。
これは、XYの問題のように聞こえます。あなたが実際に抱えている問題は何ですか? – NathanOliver