Иначе говоря, нужно записать строчки, встречающиеся в обоих файлах, в другой файл? Если да, то вот:
#include <iostream>
#include <fstream>
#include <vector>
int main() {
std::string path_first;
std::string path_second;
std::string path_result;
std::cout << "Введите путь к первому файлу: ";
std::getline(std::cin, path_first);
std::cout << "Введите путь ко второму файлу: ";
std::getline(std::cin, path_second);
std::cout << "Введите путь к файлу, где следует разместить результат: ";
std::getline(std::cin, path_result);
std::ifstream file_first(path_first);
std::ifstream file_second(path_second);
std::ofstream file_result(path_result);
if (!file_first.is_open() or !file_second.is_open() or !file_result.is_open()) {
std::cout << "Не удалось открыть файл." << std::endl;
}
else {
std::vector<std::string> lines_first;
std::vector<std::string> lines_second;
std::string buff;
while (std::getline(file_first, buff)) lines_first.push_back(buff);
while (std::getline(file_second, buff)) lines_second.push_back(buff);
for (auto line_first : lines_first) {
for (auto line_second : lines_second) {
if (line_first == line_second) file_result << line_first << "\n";
}
}
}
file_first.close();
file_second.close();
file_result.close();
return 0;
}
Требует загрузки обоих файлов в память и работает относительно медленно, но что-то мне подсказывает, что этого хватит.