还是ostringstream?
istringstream a("asd");
istringstream b = a; // This does not work.
我猜memcpy也不行。
答案 0 :(得分:6)
istringstream a("asd");
istringstream b(a.str());
编辑: 根据您对其他回复的评论,听起来您可能还想将fstream的全部内容复制到strinstream中。你不希望/不得不一次做那个角色(而你是对的 - 通常很慢)。
// create fstream to read from
std::ifstream input("whatever");
// create stringstream to read the data into
std::istringstream buffer;
// read the whole fstream into the stringstream:
buffer << input.rdbuf();
答案 1 :(得分:2)
你不能只复制流,你必须使用迭代器复制他们的缓冲区。例如:
#include <sstream>
#include <algorithm>
......
std::stringstream first, second;
.....
std::istreambuf_iterator<char> begf(first), endf;
std::ostreambuf_iterator<char> begs(second);
std::copy(begf, endf, begs);