还是ostringstream?
我猜memcpy也行不通。
istringstream a("asd");
istringstream b = a; // This does not work.
我猜memcpy也行不通。
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();
ostringstream
而不是 istringstream
,对吗? - Allen George您不能只是复制流,而是需要使用迭代器来复制它们的缓冲区。例如:
#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);