Не пулчается закончить программу
Условие - Написать программу С++. Даны два текстовых файла. Создать третий файл, в котором после каждой строки первого файла будет вписана строка из второго файла. Если один из файлов будет содержать больше строк чем второй, содержание файла с большим количеством строк будет вписано в последнюю строчку третьего файла. Нельзя дублировать содержание файлов в оперативной памяти!
Все сделано кроме пунка про оперативную память и частично кроме пунка про файлы с большим количеством строк. Буду признателен, за помощь!
Код:
#include <fstream>
#include <string>
#include <iostream>
using namespace std;
int main()
{
FILE *f1 = fopen("F1.txt", "r");
FILE *f2 = fopen("F2.txt", "r");
FILE *f3 = fopen("F3.txt", "w");
if (!f1 || !f2 )
{
cout << " Ошибка! Нету файлов для обработки! " << endl;
return 1;
}
cout<< "Содержание первого файла: " << endl;
cout << endl;
cout << ifstream("F1.txt").rdbuf();
cout << endl;
cout << endl;
cout << "Содержание второго файла: " <<endl;
cout << endl;
cout << ifstream("F2.txt").rdbuf();
cout << endl;
char buf[510];
while (!feof(f1) && !feof(f2))
{
fgets(buf, 255, f1);
int len = strlen(buf);
fgets(buf+len, 510-len, f2);
fputs(buf, f3);
}
fclose(f2);
while (!feof(f1))
{
fgets(buf, 255, f1);
cout<<endl;
fputs(buf, f3);
}
fclose(f1);
fclose(f3);
cout << endl;
cout << " Содержание третьего файла :" << endl;
cout << endl;
cout << ifstream("F3.txt").rdbuf();
cout << endl;
return 0;
}