以下代码正常运行
//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
目录吗?(看起来很奇怪)
答案 0 :(得分:0)
如果Verilog
目录不存在,std::ofstream
将不会为您创建它 - 它的目的是读取和写入文件。如果该目录不存在,则无法打开该文件,因此is_open
确实是错误的。