Biblioteka fstream, zapisywanie plików o różnych nazwach.

0

Witam! ;)
Czy istnieje możliwość, aby przy każdym uruchomieniu programu tworzył się plik tekstowy o innej nazwie? Chciałbym to jakoś porozdzielać, bo albo mi się nadpisuje albo powiela w jednym pliku, a żadna z tych opcji mnie nie satysfakcjonuje. Chciałbym po prostu uzyskać rezultat, że przy każdym uruchomieniu będę dostawał pliki np. "Log1.txt, Log2.txt, Log3.txt" i tak dalej.

0

Sprawdz, czy plik o danej nazwie juz istnieje, jeśli tak, to zmien nazwe i sprawdz czy plik taki jest itd, az do skutku.

1

Możesz wykorzystać timestamp w nazwie pliku i bibliotekę std::chrono.

using namespace std::chrono;

auto time = duration_cast<milliseconds>(high_resolution_clock::now().time_since_epoch()).count();
string name = "log_"+std::to_string(time);
0

@Whittler: a nie lepiej zawsze używać tego samego pliku tylko użyć logrotate lub jemu podobnych rozwiązań? To pozwoli Tobie również nie przejmować się jeśli instancja będzie działała na tyle długo, że wygeneruje log za duży by się na dysku mieścił.

Alternatywnie, jeśli to tylko tymczasowe pliki, które nie muszą się zachować pomiędzy restartami to możesz użyć plików tymczasowych.

1

Jeśli te pliki zawierają logi, to może lepiej użyć gotowego rozwiązania?
https://github.com/gabime/spdlog

1 użytkowników online, w tym zalogowanych: 0, gości: 1