是否可以将stringbuf的streambuf直接传递给filebuf?

时间:2017-01-08 21:15:48

标签: c++ c++11 c++14 ofstream filebuf

我正在处理操作stringbuf的函数,我需要将它保存在一个文件中。 如果我可以将stringbuf直接传递给ofstream的filebuf,这可能是一个巨大的优势。

我知道两者都使用streambuf对象,而不是以某种方式将filebuf的streambuf替换为我的stringbuf流?

请查看下面的代码,以便更好地理解这个想法:

#include <fstream>
#include <sstream>

void printit(std::stringbuf &MyBb) {
    std::ofstream fFile("newfile.txt");

    fFile.rdbuf(MyBb.rdbuf()); //MyBb doesn't have this member function
                               //How can I give to fFile the streambuf
                               //from my stringbuf?  
}

int main() {
    std::stringbuf MyB;

    MyB.sputn("First sentence\n",15);

    printit(MyB);

    return 0;
}

1 个答案:

答案 0 :(得分:-2)

你只需要像写一个字符串并使用你的功能一样。使用fFile << MyPb.rdBuff();这应该可行