C ++ OStream无法创建新文件

时间:2018-10-14 14:35:17

标签: c++ logging ostream

这是我用来创建应用程序生成的日志的WriteAppLog代码,但我想覆盖以前的日志或每次都使用新名称创建一个新文件。

有人可以帮我修改吗?

void WriteAppLog (const std::string &s)
        {

        std::ofstream file ("AppLog.txt", std::ios::app);

        file << "[" << Helper::DateTime().GetDateTimeString () << "]" << "\n" << s << std::endl << "\n";
        file.close();
        }

1 个答案:

答案 0 :(得分:1)

模式标志std::ios::app指示应将输出附加到文件。您必须使用std::ios::out

std::ofstream file ("AppLog.txt", std::ios::out);

请参见std::ofstream


  

或使用新名称创建新文件

如果要检查文件是否存在,则可以尝试打开文件以进行读取,并通过std::ios::good()检查是否成功:

bool exists( const std::string& fileName )
{
    std::ifstream infile(fileName.c_str())
    return infile.good();
}

根据结果,您可以使用新名称创建一个新文件。