从 FILE\* 指针创建 fstream 对象

新手上路,请多包涵

创建 fstream 对象的众所周知的方法是:

 ifstream fobj("myfile.txt");

IE。使用文件名。

但我想使用文件描述符创建一个 ifstream 对象。

原因: 我想使用 _popen() 执行命令 _popen() 将输出返回为 FILE* 。所以有一个 FILE* 指针,但没有文件名。

原文由 Tabrez Ahmed 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 378
1 个回答

您不能仅在标准 C++ 中做到这一点,因为 iostream 和 CI/O 是完全独立且不相关的。但是,您可以编写 自己 的由 C 文件流支持的 iostream。我相信 GCC 带有一个这样的流类作为库扩展。

或者,如果您想要的只是一种包装 C 文件流的对象-y 方式,则可以为此目的 使用唯一指针

原文由 Kerrek SB 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题