Я пытаюсь создать словарь, используя входной файл на C

#c #lexicon

#c #словарь

Вопрос:

У меня есть file.txt Я хочу создать функцию на C , которая может читать слова в этом файле и печатать каждое слово и сколько раз они встречаются в file2.txt

Я провожу некоторое исследование, я знаю, что могу использовать анализатор и средство записи, а также класс map, любая помощь, пожалуйста?

 bool Parser::hasMoreTokens() {
  if(source.peek()!=NULL){
    return true;
}
else{
     return false;
}
}
  

Комментарии:

1. Шаг 1: Вы сначала предоставляете некоторый код

Ответ №1:

Это домашняя работа? Поищите в Интернете std::map , std:string std::ifstream и std::ofstream .

Ответ №2:

Прочитайте файл, используя ifstream, сохраните в map strings, используйте int как значение map и увеличивайте его каждый раз, когда вы сталкиваетесь с определенным string . Затем запишите их в файл, используя ofstream.

Комментарии:

1. мне нужна помощь в реализации функции синтаксического анализа

2. что делает ваша функция синтаксического анализа?

3. это класс синтаксического анализа, который я должен внедрить, я хочу, чтобы класс синтаксического анализа мог обрабатывать операции ввода

4. использую ли я ifstream для чтения из файла, который я написал source.open(filename);

5. итак, у меня есть функции в parser.cpp который я должен реализовать

Ответ №3:

Если вы хотите быть эффективным и выполнить это за меньшее возможное количество строк, но используя стандартную библиотеку, попробуйте это:

 #include <fstream>
#include <iostream>
#include <iterator>
#include <set>
#include <string>

int main()
{
     std::ifstream f("text.txt");
     std::istream_iterator<std::string> eof;
     std::multiset<std::string> words( std::istream_iterator<std::string>(f) , eof);

     std::ofstream f_out("text_output.txt");
     for( std::multiset<std::string>::iterator i = words.begin(); i!=words.end(); i = words.upper_bound(*i) )
          f_out << "the word " << *i << " found " << words.count(*i) << " timesn";

}
  

Этот код захватывает файл с именем «text.txt «и выводит результат в «text_output.txt «

  • Содержимое «text.txt «:
    могу ли я, могу ли я, могу ли я сделать это правильно?
    Сколько раз мне нужно запрограммировать одну вещь, чтобы запомнить ее?

  • Содержимое «text_output.txt «:
    слово Как найдено в 1 раз
    , слово, которое я нашел 4 раза,
    слово может найдено 3 раза,
    слово do найдено в 2 раза
    , слово it? найдено 1 раз
    слово many, найдено 1 раз
    слово need, найдено 1 раз
    слово one, найдено 1 раз
    слово program, найдено 1 раз
    слово правильно? найдено 1 раз
    слово remember, найдено 1 раз
    слово thing, найдено 1 раз
    слово this, найдено 1 раз
    , слово times найдено 1 раз
    , слово to найдено 2 раза

Хорошим ресурсом для изучения фантастических способов эффективного использования c является книга под названием Accelerated c .

С уважением,