Удаление из файла строки по номеру

Передо мной стоит задача сделать функцию которая удаляет строку из файла по номеру. Вроде бы простенькое задание , написал вот такой вот код:

void delete_row_from_file_by_number(ifstream& f1, ofstream& f2) {
    f1.seekg(0, ios::beg);
    f1.clear();
    int number;
    string buff;
    cout << "Enter the line number you want to delete: "; cin >> number;
    for (int i = 1; !f1.eof();i++) {
        if (i == number ) {
            continue;
        }
        else {
            getline(f1, buff);
            f2 << buff << "\n";
        }
    }
    f1.seekg(0, ios::beg);
    f1.clear();
}

Но при открытии второго файла все равно записываются все строки, помогите найти ошибку в коде. Заранее всем благодарен.


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

Автор решения: Harry

Попробуйте так:

for (int i = 1; getline(f1, buff);i++) 
    if (i != number ) f2 << buff << "\n";
→ Ссылка