Чтения слов из файла

152
30 июня 2019, 02:30

Задание следующие: пользователь вводит адрес директории и ключевое слово, моя задача найти все текстовые файлы в этой директории, которые содержат это ключевое слово. Вот мой код:

void ShowListFile(string p,string word)
{
    for (auto i = fs::directory_iterator(p); i != fs::directory_iterator(); i++)
    {
        if (!fs::is_directory(i->path())) 
        {
            if (i->path().extension() == ".txt")
            {
                string find;
                find = p + "\\";
                find += i->path().filename().string();
                ifstream fin(find);
                cout << find << endl;
                int l;
                string wr;
                string str1;
                string str2;
                str2 = word;
                while (getline(fin, wr))
                {
                    for (int l = 0; l <= wr.length(); l++)
                        if (wr[l] != ' ' && l != wr.length())
                            str1 = str1 + wr[l];
                        else if (wr[l] == ' ' || l == wr.length())
                        {
                            if(str1 == str2)
                            {
                                cout << i->path().filename().string() << "Есть слово" << endl;
                                fin.close();
                                continue;
                            }
                            str1 = "";
                        }
                }
                fin.close();
                //cout << i->path().filename().string() << endl;
            }
        }
        else
            continue;
    }
}

Т.е в чем суть, в p передается путь,а word это ключевое слово. Но почему-то он не находит нужные текстовые файлы

READ ALSO
Цикл for проходящий по итераторам

Цикл for проходящий по итераторам

Проблема: Синтаксическая конструкция цикла for для итераторов стандартна

182
Преобразование Бокса — Мюллера

Преобразование Бокса — Мюллера

Хочу воспользоваться первым вариантом этого метода, чтобы генерировать псевдослучайные числа с нормальным распределением

118
Запрет ввода символов в Linux консоле на C++

Запрет ввода символов в Linux консоле на C++

как можно запретить ввод букв внутри терминала? Жмем клавишу, программа сразу отрабатывает, понимает, что это буква и ничего не происходитЖмем...

121
Internal error. MavenArchiver

Internal error. MavenArchiver

Получаю при интале вот такую ошибкукто знает как исправить?

113