Как через 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;
}

Ответы (0 шт):