c ++ iostream - 未创建输出文件

时间:2012-04-05 06:30:09

标签: c++ iostream

我添加了一些命令来在给定类的方法中生成输出文件。这非常有效,输出文件是在执行期间生成的。既然我对代码进行了重大更改(但根本不对输出文件命令),我不再正确生成输出了吗?这来自哪里?我改变的代码似乎没有输出命令的任何连接。构造函数看起来像

solverMethod::solverMethod(solverInput*inp_):solverMethod(inp_)
{
ndim = m_input->getNbParams(); 

bestFuncEval = DBL_MAX;

NMAX = m_input->getMaxIter();

FTOL = m_input->getTolerance();

NITER = 0;

logMode = true;

osOutput.open("F://Output.txt") ;

}

其中member boolean logMode决定注释是否处于活动状态。

在不同的方法中,我有像

这样的代码
if(logMode)
{   
    osOutput << "\n";
    osOutput << " - - BUILD  ";
    osOutput << "\n";


    osOutput << "INITIAL";
    osOutput << "\n";
    for(int k=0;k<npts;k++)
    {
        for(int j=0;j<m_ndim;j++)
        {
            osOutput << s_[k][j]  ;
            osOutput << ",  ";
        }
    }
    osOutput << "\n";
}

发表评论

然后我在主要方法结束时:

  // ....


osOutput.close();
return true;
 }

您还有其他信息

1 个答案:

答案 0 :(得分:1)

open之后的流的状态是什么?你几乎总是 想检查open是否成功(以及是否全部成功) 关闭后写入成功)。你可能会尝试类似的东西:

osOutput.open(...);
if ( !osOutput.is_open() ) {
    std::cerr << "Cannot create ..., error was: " << strerror( errno);
}

这将为您提供有关错误的更多信息。