Каков правильный набор флагов ввода-вывода для std::fstream
, где я хочу читать и записывать в файл, не обрезая файл, если он существует, но создавая его, если он не работает?
Я пробовал
std::ios::binary | std::ios::in | std::ios::out
std::ios::binary | std::ios::in | std::ios::out | std::ios::ate
но ни один из них не создает файл, если он еще не существует.
Я не хочу std::ios::app
, потому что мне также нужно искать по файлу по желанию с помощью курсоров get и put.
Одним из способов решения этой проблемы было бы сначала создать экземпляр std::ofstream
, а затем немедленно закрыть его и открыть поток, который я действительно хочу, но это кажется беспорядочным, если его можно избежать с помощью одного объекта потока.