Работа с файлами, вопрос о перезаписи

245
17 октября 2017, 03:17

Имеется текстовый файл, в который записываются значения из массива типа int. Запись происходит таким образом:

string filename;
cout << "Введите путь к файлу: ";
cin >> filename;
ofstream infile(filename);
if (!infile.is_open()) // если файл небыл открыт
{
    cout << "Файл не может быть открыт или создан\n";
}
else
{
    for (int i = 0; i < n; i++)
    {
        infile << array[i] << ' ';
        {
            infile << endl;
        }
    }
    cout << "Записано." << endl;
    infile.close();
}

Необходимо выполнить проверку на то, есть ли в файле уже записи, и если есть выдать сообщение с вопросом о перезаписи, используя ofstream все данные из него удаляются, либо файл создается чистым (так скажем с нуля). Как решить данную проблему не знаю, подтолкните к решению.

Answer 1

Если файл существует (его можно открыть) - спросить о перезаписи. Если ответ - перезаписывать, открыть файл в режиме по умолчанию (с перезаписью с нулевого размера). Если нет - открыть в режиме добавления (ios::ate).

Можно сразу открыть в режиме дозаписи, и если надо перезаписать, становиться в начало и писать. Но здесь есть опасный момент - может, придется записать меньше, чем в файле уже есть, и получится ерунда - вначале новые данные, а дальше - нестёртые старые.

READ ALSO
Работа с *.STL файлами в С++

Работа с *.STL файлами в С++

Подскажите пожалуйста, какую технологию выбрать для работы с *STL файлами, и если возможно, небольшое интро в нее

242
Реально ли в плюсах создать анонимный класс через new?

Реально ли в плюсах создать анонимный класс через new?

Так же интересно, возможно ли как в джаве создать анонимный наследованный класс и сразу определить в нем методы Вместо этого:

233
jQuery Не работает $(this).css()

jQuery Не работает $(this).css()

Подскажите пожалуйста почему не работает?

300
JQuery - Как сделать, чтобы mmenu выезжало сверху над контентом, а контент не сдвигался?

JQuery - Как сделать, чтобы mmenu выезжало сверху над контентом, а контент не сдвигался?

Как сделать так, чтобы mmenu выезжало сверху над контентом, а контент оставался бы на месте, то есть не сдвигался?

239