Функция двойного копирования файла
Есть функция, которая на вход принимает путь до файла.
Её цель: Создать файл с таким же названием, но с окончанием _double.txt. Далее функция должна 2 раза скопировать всё содержимое из 1-ого файла во 2-ой файл соответственно.
К примеру: На вход подаём файл text.txt с содержимым hello. После выполнения функции, должен создаться файл text_double.txt с содержимым hello (и на новой строчке ещё) hello;
void double_copy(string p) {
string p2 = p;
ifstream f1(p);
for (int i = p.size(), c = 5; c != 0; --i, --c) {
p2.erase(i);
}
p2 += "_double.txt";
ofstream f2(p2);
string str;
while (getline(f1, str)) {
f2 << str << endl;
}
}
Ответы (1 шт):
Автор решения: lakvak
→ Ссылка
Нужно было просто начать чтение файла сначала.
void double_copy(string p) {
string p2 = p;
ifstream f1(p);
for (int i = p.size(), c = 5; c != 0; --i, --c) {
p2.erase(i);
}
p2 += "_double.txt";
ofstream f2(p2, ios::app);
string str;
while (getline(f1, str)) {
f2 << str << endl;
}
f1.clear();
f1.seekg(0);
while (getline(f1, str)) {
f2 << str << endl;
}
f1.close();
f2.close();
}