Как через try-catch проверить существует ли файл с таким именем и если он есть дать запрос на переименование файла? (Консоль)
Задача такова, я создаю какой то файл и записываю в него массив элементов и сумму этих элементов, с определенными проверками, что там допустим нельзя вводить ничего кроме цифр и размерность массива не должна превышать 100. А вот как выполнить проверку того,что файл с таким именем уже существует, я понять никак не могу...
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
#include <cstdlib>
using namespace std;
// Класс вывода сообщения об ошибке
class Error : public exception{
string err;
public:
Error(string error_text):
err(error_text) {};
string geterror()
{
return err;
}
};
int main()
{
int num = 0; // переменная для хранения размера массива
int sum = 0; // переменная для суммы элементов массива
ofstream file ("text.txt"); // создание файла
try // блок исключений (код, который может привести к ошибке)
{
cout << "Enter integer value: ";
cin >> num; // получение от пользователя размера массива
if (num > 100)
{
throw Error("incorrect size input");
}
if (!cin)
{
throw Error("invalid input, character was entered!");
}
file << "Elements: "<< "\t";
int *arr = new int[num]; // Выделение памяти для массива
for (int i = 0; i < num; i++)
{
// Заполнение массива и вывод значений его элементов
arr[i] = rand() % 101 - 50; // Массив заполняем рандомными значениями в диапазоне от [-50,50]
cout << "Value of " << i << " element is " << arr[i] << endl; // Вывод рандомных значений
file << endl << arr[i] << "\t"; // запись этих значений в файл
sum = sum + arr[i]; // сумма всех элементов массива
}
cout << "Sum: " << sum << endl; // вывод суммы всех элементов массива
file << endl << "Sum:" << sum << "\t"; // запись в файл суммы всех элементов массива
delete[] arr; // очистка памяти
}
catch (Error e) // отлов "исключений"
{
cout << e.geterror() << endl; // ошибка
}
return 0;
}