C/C++

Работа с файлами С++, ну кто-нибудь помогите мне разработать код без ошибок, чтобы работало

Неделя 23
Тема: Файлы
Домашнее задание
Задание 1. Пользователь вводит путь к папке и искомое слово. Программа ищет слово в папке и её подпапках. После
работы программы формируется отчет с информацией о том, где было слово найдено, количество совпадений.
Добавьте возможность замены или удаления искомого слова из файлов.


Дайте уже кто-нибудь работающий код без единых ошибок на С++. Visual studio 19.

Прошу уже 7-ой раз.

Прошу, не удаляйте мой вопрос. Запарился уже спамить одним и тем же вопросом, никто мне не помогает :(
 #include  
#include
#include
#include

using namespace std;

void searchAndReplace(const string& folderPath, const string& searchWord, const string& replaceWord, bool removeWord) {
int matches = 0;
for (const auto& entry : filesystem::recursive_directory_iterator(folderPath)) {
if (!entry.is_regular_file()) {
continue;
}

string filePath = entry.path().string();

ifstream inputFile(filePath);
ofstream outputFile(filePath + ".tmp"); // Создаем временный файл для записи

string line;
while (getline(inputFile, line)) {
size_t pos = line.find(searchWord);
if (pos != string::npos) {
matches++;
if (removeWord) {
line.erase(pos, searchWord.length());
} else {
line.replace(pos, searchWord.length(), replaceWord);
}
}
outputFile
Slydalveciyo Denver
Slydalveciyo Denver
14 368
Лучший ответ
Мне жаль слышать, что вы еще не получили помощь. Вот пример кода, который должен соответствовать вашим требованиям. Обратите внимание, что это всего лишь образец, который может потребовать изменений в соответствии с вашими потребностями и структурой папок.

```
#include <иопоток>
#include <fstream>
#include <файловая система>
#include <строка>

использование пространства имен std;

void searchAndReplace (string folderPath, string searchWord, string replaceWord, bool removeWord) {
совпадения целых чисел = 0;
for (const auto& entry: filesystem::recursive_directory_iterator(folderPath)) {
если (! entry.is _regular_file()) {
продолжать;
}

строка filePath = entry.path().string();

файл ifstream (путь к файлу);
струнная линия;

в то время как (getline (файл, строка)) {
size_t pos = line.find(searchWord);
если (pos != string::npos) {
соответствует++;
если (удалить слово) {
line.erase(pos, searchWord.length());
} еще {
line.replace(pos, searchWord.length(), replaceWord);
}
выходной файл потока (путь к файлу);
выходной файл << строка << endl;
выходной файл.close();
}
}
}

если (соответствует == 0) {
cout << "Совпадений не найдено." << конец;
} еще {
cout << "Всего найдено совпадений: " << совпадений << endl;
}
}

интервал основной () {
строка folderPath, searchWord, replaceWord;
bool removeWord = ложь;
cout << "Введите путь к папке: ";
getline (cin, путь к папке);
cout << "Введите слово для поиска: ";
getline(cin, searchWord);
cout << "Вы хотите удалить искомое слово? (y/n): ";
выбор персонажа;
cin >> выбор;
если (выбор == 'y' || выбор == 'Y') {
удалитьСлово = Истина;
} еще {
cout << "Введите слово для замены: ";
cin >> заменить слово;
}

поиск и замена (путь к папке, поиск слова, замена слова, удаление слова);

вернуть 0;
}
```

Чтобы использовать этот код, просто скопируйте и вставьте его в новый файл C++ в Visual Studio 2019, а затем создайте и запустите программу. Вам будет предложено ввести путь к папке, слово для поиска и указать, хотите ли вы удалить или заменить слово для поиска. Затем программа выполнит поиск слова и создаст отчет с количеством найденных совпадений. Если вы выбрали замену слова, оно заменит его в файлах. Если вы решили удалить слово, оно будет удалено из файлов.
Aleks Skorpion
Aleks Skorpion
6 443
Максим Отводенко У меня ещё больше ошибок появилось
Dilovar Jumaev #include <иопоток> это сильно)