怎么把std::iostream这种类型的数据保存到文件中?

在Linux C++中使用别人提供的SDK获取到std::futurestd::shared_ptr<std::iostream>这种类型的音频数据,该怎么把这种类型的数据保存到音频文件中?
在使用下面的code进行保存的时候,编译的时候提示:

std::ofstream out("result.mp3");  
     if (out.is_open())   
    {  
         out.write(str1,strlen(str1));;  //str1是std::future<std::shared_ptr<std::iostream>> 类型数据
         out.close();  
     } 

 cannot convert ‘std::future<std::shared_ptr<std::basic_iostream<char> > >’ to ‘const char*’ for argument ‘1’ to ‘size_t strlen(const char*)’

或者是需要把std::futurestd::shared_ptr<std::iostream>类型进行转换一下,该怎么转换?

4个回答

已经解决了。
把out.write(str1,strlen(str1)); 改为:  out << attachmentReader.get()->rdbuf();

在线等,哪位大神帮忙回答一下。非常感谢!
本人是做android java的,对这个不了解

str1.read()把数据读到char数组中,再把char数组用out.write()写入。
如果数据很大要分段循环读、写。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问