bogongjie
望风的懒蜗牛
2017-04-14 03:56
采纳率: 33.3%
浏览 1.8k

怎么把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条回答 默认 最新

  • bogongjie
    望风的懒蜗牛 2017-04-17 02:05
    已采纳

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

    点赞 评论
  • bogongjie
    望风的懒蜗牛 2017-04-14 03:58

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

    点赞 评论
  • oyljerry
    oyljerry 2017-04-14 05:01
    点赞 评论
  • Tiger_Zhao
    Tiger_Zhao 2017-04-14 05:52

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

    点赞 评论

相关推荐