Как построить парсер для входного файла - PullRequest
0 голосов
/ 20 апреля 2011

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

Прокомментированный код - это то, что я пробовал, но у меня такое чувство, что оно серьезнее. У меня есть текстовый файл, и я хочу проанализировать его, чтобы подсчитать, сколько раз слова появляются в документе.

   Parser::Parser(string filename) {
   //ifstream.open(filename);

  // source (filename, fstream::in | fstream::out);

 }

Ответы [ 3 ]

1 голос
/ 20 апреля 2011

Прокомментированный код - это то, что я пробовал, но у меня такое ощущение, что он серьезнее.

У меня такое чувство, что ты ничего не пробовал. Поэтому я собираюсь сделать то же самое.

Google твой друг .

0 голосов
/ 20 апреля 2011

Чтобы прочитать слово:

std::ifstream  file("FileName");

std::string word;
file >> word; // reads one word from a file.


// Testing a word:
if (word == "Floccinaucinihilipilification")
{
     ++count;
}

// Count multiple words
std::map<std::string, int>   count;

// read a word
++count[word];

// To read many words from a file:

std::string word;
while(file >> word)
{
     // You have now read a word from a file
}

Примечание: это реальное слово: -)
http://dictionary.reference.com/browse/floccinaucinihilipilification

0 голосов
/ 20 апреля 2011

Посмотрите на ответы в Как вы читаете слово из файла в C ++? .Самый простой способ - использовать ifstream и operator>> для чтения отдельных слов.Затем вы можете использовать стандартный контейнер, такой как vector (как упомянуто в ссылке выше) или map<string, int>, чтобы запомнить фактическое количество.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...