21xrx.com
2024-09-19 09:52:31 Thursday
登录
文章检索 我的文章 写文章
C++文件单词次数统计
2023-07-05 12:49:02 深夜i     --     --
C++ 文件 单词 次数 统计

在C++编程语言中,实现文件单词次数统计是一个比较基础的功能。这里介绍一下如何使用C++编写一个文件单词次数统计程序。

首先,我们需要打开一个文件,并将其中的所有内容读入到一个字符串中。可以使用C++的fstream库来实现文件的读取。在读取文件时,需要注意文件读取时的编码格式,否则容易导致乱码的问题。一般来说,如果是纯文本文件,编码格式为UTF-8或ANSI编码。

接下来,需要将读入的字符串进行分词。可以使用C++的string类和字符串流stringstream类来实现字符串的分割。具体的实现方法是将字符串输入stringstream中,然后使用getline函数来逐个获取单词。

在获取单词后,需要将单词进行统计。可以使用一个map容器来存储每个单词及其出现的次数。map是C++ STL标准库中的关联容器,用来存储键值对。在本程序中,键是单词,值是单词出现的次数。

最后,需要将统计结果输出。可以将map容器中存储的每个键值对逐个输出到文件中或控制台上。在输出时,可以使用C++中的迭代器来实现对map容器的遍历。

下面是一个简单的C++程序示例:


#include <iostream>

#include <fstream>

#include <string>

#include <sstream>

#include <map>

using namespace std;

int main()

{

  // 打开文件

  ifstream fin("test.txt");

  // 将文件内容读入字符串

  stringstream buffer;

  buffer << fin.rdbuf();

  string content = buffer.str();

  // 分割字符串为单词

  stringstream ss(content);

  string word;

  map<string, int> wordCount;

  while (ss >> word) {

    ++wordCount[word];

  }

  // 输出单词出现次数

  for (const auto& [word, count] : wordCount)

    cout << word << ": " << count << endl;

  

  return 0;

}

在上面的示例中,我们通过读取名为“test.txt”的文件,统计了其中所有单词的出现次数,并将结果输出到控制台上。这里所展示的仅是一个简单的实现方式,实际上还可以对程序进行优化,例如增加对输入文件的一些错误判断等。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复