Usuwanie zawartości pliku w fstream

0

Dzień dobry.
Tym razem kwestia stricte teoretyczna. Czy po otwarciu istnieje możliwość wykasowania zawartości pliku w klasie fstream?

Mogę oczywiście zamknąć plik stworzyć zmienną ofstream/fstream(ios::trunc) i dopiero wtedy zapisać do pliku ale wydaje mi się to strasznie okrężnym działaniem.

1

https://stackoverflow.com/questions/24189029/how-to-clear-the-content-of-a-file-after-it-is-opened-using-fstream

PS:
Można skorzystać z dostępnego od C++17 <filesystem>

#include <iostream>
#include <fstream>
#include <filesystem>
namespace fs = std::experimental::filesystem;

int main() {   
   std::string path = "test.txt";
   std::ofstream(path).put('a');
   std::cout << "File size: " << fs::file_size(path) << '\n';
   fs::resize_file(path, 0); // resize to 0
   std::cout << "File size: " << fs::file_size(path) << '\n';
   std::cout << std::boolalpha <<  fs::is_empty(path) << '\n';
}

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