Имеются 2 файла, в каждом из них слова. Нужно вывести на экран консоли слова, которые встречаются в обоих файлах. Есть следующий код:
#include <iostream>
#include <fstream>
#include <Windows.h>
using namespace std;
/* 2 файла, в них слова. Вывести на экран все слова, которые есть в обоих файлах */
int main(int argc, char** argv) {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
char mas1[256], mas2[256];
int count1=0, count2=0;
ifstream f1 ("in1.txt");
ifstream f2 ("in2.txt");
while (!f1.eof())
{
f1 >> mas1;
count1++;
}
while (!f2.eof())
{
f2 >> mas2;
count2++;
}
for (int i=0; i<count1; i++)
for (int j=0; j<count2; j++)
if (mas1[i]==mas2[j])
cout << mas2[j];
f2.close ();
f1.close ();
return 0;
}
Как нетрудно догадаться, он не работает. Я думаю, всё дело в том, что согласно коду выше каждый элемент каждого массива сравнивается только с элементом с ТАКИМ ЖЕ индексом из другого массива. Ну то есть первый с первым, второй со вторым и т.д. Я не могу понять, как написать программу, которая берёт, например, в первом массиве каждый отдельный элемент и сравнивает его со ВСЕМИ элементами второго массива. Убедительная просьба, если будете редактировать мой код, постарайтесь использовать те библиотеки и функции, что есть у меня! Ну ещё string можно, я его пойму...с остальными библиотеками я пока, к сожалению, не знакома:(
map<string, int> m;
string s;
while(f1 >> s)
++m[s];
// теперь имеем таблицу слов и количество этих слов в файле
// добавляем в таблицу из другого файла
while (f2 >> s) {
++m[s]; // если нет такого слова, то m[s] == 1
if(m[s] > 1) cout << s <<endl;
m[s] = 0;
}
вот и вся логика
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Когда происходит FAIL() тогда TearDown не освобождает ресурсы, можно ли как то сделать чтоб когда - происходит FAIL() происходил вызов деструктора...