Как создать новый файл на чтение и на запись с помощью fstream?
[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);
Источник: Stack Overflow на русском