C ++ ostream не создает новый файл - PullRequest
0 голосов
/ 14 октября 2018

Это код 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 голосов
/ 14 октября 2018

Флаг режима 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();
}

В зависимости от результата вы можете создать новый файл с новым именем.

...