C ++提取istream的内容并复制到另一个

时间:2015-02-04 01:32:35

标签: c++ copy istream

我想知道如何将一个istream的内容吸出并将其保存在另一个istream中。似乎显式复制似乎不适用于流,所以我想知道是否可以实现这一点。

2 个答案:

答案 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 << ' ';
    }
}