【问题标题】:File Path generate using std::ofstream使用 std::ofstream 生成文件路径
【发布时间】:2013-08-01 14:23:06
【问题描述】:

以下代码正常运行

    //m_outputFilePath and m_moduleName are strings

     std::string moduleVerilog;
    // call Gen function to update moduleVerilog

    std::ofstream moduleVerilogFile(m_outputFilePath + "\\" + m_moduleName + ".v");
    if (moduleVerilogFile.is_open())
    {
        moduleVerilogFile << moduleVerilog;
        moduleVerilogFile.close();
    }

但如果我将moduleVerilogFile 更改为:

std::ofstream moduleVerilogFile(m_outputFilePath + "\\Verilog\\" + m_moduleName + ".v");

没有写入文件,因为moduleVerilogFile.is_open() 返回 false 我应该显式生成Verilog 目录吗?(看起来很奇怪)

【问题讨论】:

    标签: c++ file ofstream


    【解决方案1】:

    如果Verilog 目录不存在,std::ofstream 将不会为您创建它 - 它的目的是读取和写入文件。如果目录不存在,将无法打开文件,所以is_open 确实是假的。

    【讨论】:

    • 文件可能不存在,但目录路径必须有效。如果该文件不在有效路径中,std::ofstream 将默认创建一个并将内容写入其中。
    猜你喜欢
    • 2023-04-04
    • 2017-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 2016-09-19
    相关资源
    最近更新 更多