如何读取文件的内容,如果文件中的单词重复添加到列表中?

时间:2017-07-30 17:51:36

标签: c++

我正在尝试创建一个免费的库存系统,我似乎无法弄清楚如何读取文件内容。如果有匹配的话,请加上一个数字。因此,如果说“Sticks”在文件中显示3次,则将其打印到控制台。 “棒:3”

void ViewFiles() {
  string line;
  ifstream a_file("Candles");
  if (a_file.is_open())
  {
    while (getline(a_file, line))
    {
      cout << line << '\n';
      if (line == line) {
        line = line + "1";
      }
    }
    a_file.close();
  }
  else cout << "Unable to open file";
}

如果代码不好,我很抱歉这是我自己的第一个真正的项目。

2 个答案:

答案 0 :(得分:1)

只需使用地图即可。 你可以这样做:

map<string, int> someName;

每当您找到新单词时,请将其用作关键字:

someName[word]++; //you found it so increment the occurrence;

答案 1 :(得分:0)

你需要2个循环。在while内添加另一个,将第一个单词与列表的其余部分进行比较。如果找到相同的单词,则向计数器添加1。完成后,打印该单词和计数器,然后查找第二个单词......