Создание файла txt и запись в него C++?
https://stackoverflow.com/questions/15667530/fstre...

Про флаги можно подробнее почитать, внезапно, в документации https://www.cplusplus.com/reference/ios/ios_base/o...
Смотри сначала сюда: https://en.cppreference.com/w/cpp/io/basic_fstream
Потом сюда: https://en.cppreference.com/w/cpp/io/basic_filebuf/open
fstream открывает файл по умолчанию (как у тебя) в режиме in|out, а это значит, что если файла не существует, то возникает ошибка (смотри таблицу по второй ссылке). Логика такая, что если ты открываешь файл для чтения (тут не важно, что он открывается еще и для записи) без дополнительных флагов, то файл должен существовать.

В пару с ifstream, который открывает файл для чтения, существует и ofstream - он открывает файл для записи. При использовании ofstream не существующий файл будет создан (смотри таблицу по второй ссылке).