我拼命地尝试在ostringstream中写入,然后在另一个对象的istringstream或文件中传输数据。
std::ostringstream oss;
oss << "Hello World";
首先,我试试这个:
iss.basic_ios<char>::rdbuf(oss.rdbuf());
但是简单的“iss.str()”根本不会返回任何内容。 (第一个问题)
然后当我尝试:
std::ofstream ofs("test.txt");
ofs << oss.rdbuf();
ofs.close();
test.txt 文件中没有写入任何内容。 (第二个问题)
提前感谢您对stringstream和streambuf之间内部关系的任何解释。
答案 0 :(得分:0)
你有一种误解 - 做iss.basic_ios<char>::rdbuf(oss.rdbuf())
只会改变输入字符串流的内部指针,指向另一个输出字符串流的缓冲区。它对iss
的内部缓冲区的内容没有影响(即没有数据传输)。
据我所知,输入字符串流的 get 区域可能无效且完全未被其实现使用。我认为没有办法改变它。