我想知道如何将一个istream的内容吸出并将其保存在另一个istream中。似乎显式复制似乎不适用于流,所以我想知道是否可以实现这一点。
答案 0 :(得分:1)
你不能写入istream(" i"表示输入)。但是如果你想创建一个新的,你可以:
vector<char> str;
copy(istream_iterator<char>(cin), istream_iterator<char>(), back_inserter(str));
istringstream result(str);
现在您有一个新的istream
,其中包含cin
(或任何其他现有istream
)的内容。
答案 1 :(得分:1)
看起来你只想要一个更改缓冲区:
int main()
{
std::istream copy(nullptr);
copy.rdbuf(std::cin.rdbuf());
std::cin.rdbuf(nullptr);
for (std::string word; copy >> word; ) {
std::cout << word << ' ';
}
}