Как создать новый файл на чтение и на запись с помощью fstream?

Рейтинг: 0Ответов: 0Опубликовано: 03.03.2023

[Solved] Как создать n файлов на чтение и на запись?

Пробывал вот так, но не получается

void createFiles(const std::string& fileName, const int filesCount){
    vector<fstream*> files;
    for (int i = 1; i <= filesCount; i++) {
        string filename = "file" + to_string(i) + ".txt";
        fstream* file = new fstream(filename, ios::in | ios::out | ios::trunc);
        files.push_back(file);
    }

    for (auto file : files) {
        file->close();
        delete file;
    }
}

Вторая попытка. Выбрасывается исключение на первой итерации.

void createFiles(const std::string& fileName, const int filesCount)
{
    const std::string name("test");
    std::fstream* auxiliaryFiles = new std::fstream[filesCount];

    for (int i = 0; i < filesCount; i++)
    {
        auxiliaryFiles[i].open(name + std::to_string(i) + ".txt", std::ios::in | std::ios::out);
        if (!auxiliaryFiles[i].is_open())
        {
            throw std::string("axiliary files does not opened polyphaseSort(string, int)");
        }
    }


    for (int i = 0; i < filesCount; i++)
    {
        auxiliaryFiles[i].close();
    }
    delete[] auxiliaryFiles;
}

Правки: Прошу прощение всех. Проблема была в том, что не создавались НОВЫЕ файлы с помощью fstream.

Решение: Чтобы fstream создавал новые файлы, вам необходимо открывать с таким режимом

file.open(way, fstream::in | fstream::out | fstream::app);

Ответы

Ответов пока нет.