【问题标题】:C++ map of a key and file doesn't work [duplicate]密钥和文件的 C++ 映射不起作用 [重复]
【发布时间】:2017-08-18 08:35:27
【问题描述】:

我想在 C++ 中创建一个键和相应文件的映射。我使用了下面的sniper,它在最后一行*m_jsTabFilesMap[key] << text;给出了平均异常:

    std::map<std::string, std::ofstream*> m_jsTabFilesMap;
    std::string text = "hello all";
    std::string key = "a";
    *m_jsTabFilesMap[key] << text;

【问题讨论】:

  • 这是一个完全不同的问题。但无论如何,在使用指针之前,您需要真正阅读指针。 *m_jsTabFilesMap[key] 的意思是“使用 std::ofstream 已经在 m_jsTabFilesMap[key] 中”,但你还没有放任何东西。
  • 确保您的密钥文件分配给一个有效的打开流实例。如果遇到异常,总是包括异常类型、消息、堆栈跟踪和其他相关信息。

标签: c++ c++11 fstream ofstream stdmap


【解决方案1】:

std::ofstream 的复制构造函数被显式删除。您必须通过指针或其他方式存储流,如果您希望它们在地图中,则不会尝试复制流对象。

【讨论】:

  • 我如何做到这一点?可以举个例子吗
  • @codeLover 很抱歉在您提出实际问题之前回答,也许我在这里做错了。请查看评论的重复项并更新您的问题,以说明如果链接的重复项不适合您,您究竟想做什么。
  • 编辑我的问题更具体。
猜你喜欢
  • 2017-07-20
  • 2020-08-27
  • 2013-09-17
  • 2017-10-21
  • 2021-03-25
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
  • 2017-02-06
相关资源
最近更新 更多