C++ 数据文件处理-查找文件中的字数

C++ 数据文件处理-查找文件中的字数,c++,c++11,data-files,C++,C++11,Data Files,我有一个家庭作业问题: 在C++中编写一个函数来计算文本文件中的“DO”的存在。 我所尝试的: 我试图先搜索文本文件中的单词“d”,然后搜索紧跟其后的单词“o” #include <iostream> #include <fstream> using std::fstream; using std::cout; using std::ios; int main() { char ch[10]; int count=0, a=0; fstream

我有一个家庭作业问题:

在C++中编写一个函数来计算文本文件中的“DO”的存在。 我所尝试的: 我试图先搜索文本文件中的单词“d”,然后搜索紧跟其后的单词“o”

#include <iostream>
#include <fstream>

using std::fstream;
using std::cout;
using std::ios;

int main()
{
    char ch[10];
    int count=0, a=0;
    fstream f;
    f.open("P.txt", ios::in);

    while(!fin.eof())
    {
        fin.get(ch)
        if (ch[a]=='d')
        {
            if ((a++)=='o')
                count++;
        } 
        a++;
    }
    cout << "the no of do's is" << count;
    f.close();
}
但这个想法是完全无用的。我想不出任何其他的想法。关于这一点,我想在两种情况下给出提示:

1.计算独立存在的“do”一词

2.计算文本中任何地方出现的“do”一词


这是一个数据文件处理问题。

该算法遵循您现有的算法。按如下方式构造while循环:

while(!fin.eof()) {
    bool found = false;    
    do {
        fin.get(ch);
        found = found || ch == 'd';
    } while (ch == 'd' && fin);

    if (found && ch == 'o') {
        // boom goes the dynamite
    }
}
do-while的目的是消除重复的d,这样在循环之后,您只需检查下一个字符是否为o

笔记 就类型而言,ch的类型应该是char ch 解释 虽然fin.eof 重复接下来的几行,直到到达文件的末尾 做{ do-while循环的开始 fin.getch; 从文件中读取单字节字符 已找到=已找到| | ch='d'; 如果已找到d或当前字符是d,则将“查找”设置为true }而ch='d'&&fin; 做一段时间的结束。重复循环,直到读取的最后一个字符不是d或到达文件末尾 如果找到&&ch=='o'{ 如果我们能够满足将find设置为true的条件,并且我们读取的最后一个字符是o。。。 //炸药爆炸了 然后我们成功地找到了do这个词 桑 下一步我不会解释这一点,但它将与我已经发布的内容密切相关。这里的目标是保护您自己不阅读已经空了的文件

while(fin >> ch) {
    while(ch == 'd' && fin.get(ch)) {    
        if (ch != 'd') {
            if (ch != 'o') {
                break;
            }
            // Found it!
        }
    }
}

你为什么不发布一些代码呢,该死的图丁?用你必须有的代码提问在这里总是一件好事。好吧,我会编辑它,逐行阅读文件,使用?或者更好:逐字阅读文件,填充>>str;,并计算单词的出现次数。你不能同时说,它们有不同的算法。或者你是在告诉我们y你甚至不想理解你的家庭作业,浪费我们的时间?非常感谢,但我是一个17岁的孩子,我无法理解代码。@PushkarSoni年龄与此无关。我17岁时就在发帖子,但我知道一个好问题和乞求别人给你东西之间的区别。@PushkarSoni代码解释你是否要ng要建议如何读取文件,您不妨正确地执行,请参阅实际上我想计算文件中的“do”数。