gpt4 book ai didi

c++ - 将 Ostream 传递给 Istream

转载 作者:搜寻专家 更新时间:2023-10-31 01:07:53 24 4
gpt4 key购买 nike

我有一个将数据输出到 ostream 对象的函数,以及一个以完全相同的格式从 istream 对象初始化一个类的构造函数。即

std::ostream& operator<<(std::ostream &os, const Matrix &m) {
// Output to os
}

然后

Matrix::Matrix(std::istream& in) {
// Read from in to construct the object
}

那么如何将第一个函数的输出推送到第二个函数的输入呢?我尝试了很多东西,主要是反复试验,但完全迷路了(即甚至不确定要使用哪种流类型)。谢谢

最佳答案

由于您同时需要输入和输出,因此您需要继承 std::istreamstd::ostream< 的 std::iostream 的派生词。听起来您想使用内存缓冲区,而不是文件缓冲区,因此 std::stringstream 类型的对象可以解决问题。在将流用于输入之前,请务必调用 stream.seekg(0, std::ios::beg) 将流“倒回”到开头。

此代码也可以重用于文件 I/O,只需将 std::fstream 传递给相应的函数即可。但是由于写入和读取将被分开,std::ofstreamstd::ifstream 可能是更好的选择。

关于c++ - 将 Ostream 传递给 Istream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18754340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com