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