如何为输入文件构造解析器

时间:2011-04-20 19:49:20

标签: c++ parsing input

我可以获得一些指导来构建一个输入文件的解析器,我一直在寻找帮助几周,这个任务已经过期,我只想知道如何去做。

评论的代码是我尝试过的,但我感觉它比这更严重。我有一个文本文件,我想解析它来计算单词出现在文档中的次数。

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

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

 }

3 个答案:

答案 0 :(得分:1)

  

评论的代码是我尝试过的,但我感觉它比这更严重。

我有一种感觉你还没有尝试过。所以我也会这样做。

Google is your friend

答案 1 :(得分:0)

查看How do you read a word in from a file in C++?中的答案。最简单的方法是使用ifstreamoperator>>来阅读单个单词。然后,您可以使用标准容器,例如vector(如上面的链接中所述)或map<string, int>来记住实际数量。

答案 2 :(得分:0)

读一个字:

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