这是我用来创建应用程序生成的日志的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();
}
答案 0 :(得分:1)
模式标志std::ios::app
指示应将输出附加到文件。您必须使用std::ios::out
:
std::ofstream file ("AppLog.txt", std::ios::out);
或使用新名称创建新文件
如果要检查文件是否存在,则可以尝试打开文件以进行读取,并通过std::ios::good()
检查是否成功:
bool exists( const std::string& fileName )
{
std::ifstream infile(fileName.c_str())
return infile.good();
}
根据结果,您可以使用新名称创建一个新文件。