Это мой код, который учитывает вхождения определенной строки в файл.Подсчет событий в файле в C++
#include <iostream>
#include <string>
int frequency(std::string s, std::string file_name){
std::ifstream file;
std::string word;
int count = 0;
try{
file.open(file_name);
while(file>>word){
if(s.compare(word) == 0) ++count;
}
file.close();
}catch(std::ifstream::failure e){
//std::cout<<e<<std::endl;
}
return count;
}
//===============================================
int main() {
std::string file_name, word;
std::cout << "Enter file name.." << '\n';
std::cout << "Enter word.. " << '\n';
std::cin >> file_name >> word;
int count = frequency(word, file_name);
std::cout << "Occurrences of " << word << ": " << count;
return 0;
}
Файл указан в корневом каталоге проекта. Проблема в том, что я получаю 0
для подсчета любого слова.
Вступление слов .... есть ли каждое слово, ограниченное пробелами? этот код будет работать только для поиска независимых строк, например, он не найдет слово 'fun' в' funds' – Catalyst
Yup, это поведение, я хочу, но это даже не так. – Moffet
Вы проверили, правильно ли открыт входной файл? Почему у вас есть обработчик исключений? –