0

我有一个 file.txt 我想在 C++ 中创建一个函数,该函数可以读取该文件中的单词,并将每个单词以及它们出现的次数打印到 file2.txt

我正在做一些研究,我知道我可以使用解析器和编写器,还有地图类,请问有什么帮助吗?

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

3 回答 3

3

这是家庭作业吗?在线查找std::mapstd:string和。std::ifstreamstd::ofstream

于 2011-04-11T16:37:55.353 回答
1

使用ifstream读取文件,存储到字符串s 的映射中,用作值并在每次遇到特定. 接下来,使用ofstream将它们写入文件。intmapstring

于 2011-04-11T16:40:55.163 回答
0

如果您想提高效率并以尽可能少的行数完成此任务,但是通过使用标准库,请尝试以下操作:

#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) << " times\n";

}

此代码抓取名为“text.txt”的文件并将结果输出到“text_output.txt”

  • "text.txt" 的内容:
    可以 III 可以正确执行此操作吗?
    我需要对一件事编程多少次才能记住它?

  • “text_output.txt”
    的内容:单词如何找到1次
    单词我找到4次
    单词可以找到3次
    单词做找到2次
    单词吗?找到1 次
    单词 很多 找到1 次
    单词 需要找到1 次
    单词 1 找到1 次
    单词 程序找到1 次
    单词正确吗?找到 1 次
    单词 记住 找到 1 次
    单词 thing 找到 1 次
    单词 this 找到 1 次
    单词 次 找到 1 次
    单词 to 找到 2 次

一本名为 Accelerated c++ 的书是学习有效使用 c++ 的绝妙方法的好资源。

问候,

于 2011-04-13T01:18:02.600 回答