Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

mnmn

macrumors newbie
Original poster
Jan 14, 2013
1
0
in this code i have to what the comment said i did but i got error can you help me.....
this is my code
Code:
#include "ReadWords.h"

/**
 * Constructor. Opens the file with the given filename.
 * Program exits with an error message if the file does not exist.
 * @param - filename, a C string naming the file to read.
 * After a successful open, the constructor reads the first of the strings,
 * and initialises the eoffound flag.
 */
ReadWords::ReadWords(char *filename)
{   wordfile.open(filename);//open file
    if (!wordfile)
    {   cout << "cannot open " << filename << endl;
        exit(1);
    }
    wordfile >> nextword;
    eoffound = false;
}

/**
 * Closes the file.
 */
void ReadWords::close()
{   wordfile.close();
}

/**
 * Returns true if there is a further word in the file, false if we have reached the
 * end of file.
 * @return - bool - !eof
 * eoffound will have been set by getNextWord
 */
bool ReadWords::isNextWord()
{   return !eoffound;
}

/**
 * Eliminates punctuations at the beginning and the end if any.
 * @param - string to be fixed.
 * @return - string fixed.
 */
string ReadWords::fix(string word)
{   string s=word;
    int len = s.size();
    string answer = "";

    bool t = false;
    for (int i=0; i<len; ++i)
    {   if(isalnum(s[i])) //find the first alphanumeric character and set the boolean t as true
            t=true;

        if(t)
            if(isalnum(s[i]))
                answer += s[i];
            else if(i!=0 && i!=len-1) // if it is not the first and the last, just store it.
               answer += s[i];
    }

    if(answer.size()>0) //remove punctuations at the end of a word, i.e., "sing...."==>>"sing"
    {   int length = answer.size();
        while(!isalnum(answer[--length]))
            answer.erase(length,1); //remove the last character if it is not alphanumeric
    }

    return answer;
}

/**
 * Returns a string, being the next word in the file.
 * @return - string, fixed nextword.
 */
// note that this function could return an empty string
// if the "word" is a sequence of non-alphanumeric characters the fix function will remove everything!

string ReadWords::getNextWord()
{    string word = nextword;
     wordfile >> nextword;

     if(wordfile.eof()) //nextword doesn't exist.
         eoffound=true;

     return  fix(word);
}

/**
 * Returns a string, being the next word in the file that satisfies the filter.
 * @return - string - next word that satisfies the filter, or an empty string if there is no such word
 */
string ReadWords::getNextFilteredWord()
{
    string word = nextword;
    // you have to write the body for this
    // it should loop, calling getNextWord repeatedly until either
    while(1)
    {
      getNextWord();
      //   (a) the word returned by getNextWord satisfies the filter - in which case the word should be returned
      if (fix(word))
      {
          return word;
          }
          // or
    //   (b) the value returned by isNextWord() becomes false - in which case an empty string should be returned
          else if (!eoffound)
          {
              return "";
              }
     }
}


----------

i got error in string ReadWords::getNextFilteredWord() function ???:confused:
 

numero

macrumors regular
Jul 23, 2002
106
3
OR
Looks like school work to me. In my school if you are caught doing this you are kicked out. Not out of the class. Out of the school. No second chances, no refunds, no diploma. Good luck getting accepted by another school after that.
 

ArtOfWarfare

macrumors G3
Nov 26, 2007
9,544
6,042
@mnmn - We're going to need to know more. What error are you getting? It looks to me like your "else if (!eoffound)" should be "else if (eoffound)", maybe...

@numero - Since when is asking for help on homework an issue? Asking other people to do it for you is an issue, or asking for help on an exam is an issue, but for help on homework? MR's forums is generally where I stop by when I get stuck on my x86 assembly homework...
 
Last edited:

LPZ

macrumors 65816
Jul 11, 2006
1,221
2
@mnmn - We're going to need to know more. What error are you getting? It looks to me like your "else if (!eoffound)" should be "else if (eoffound)", maybe...

He's long gone. His assignment was due almost a month ago. :)
 

numero

macrumors regular
Jul 23, 2002
106
3
OR
@numero - Since when is asking for help on homework an issue? Asking other people to do it for you is an issue, or asking for help on an exam is an issue, but for help on homework? MR's forums is generally where I stop by when I get stuck on my x86 assembly homework...

In the academic world I view the, "This is broken. What's wrong?" question completely different than the, "I'm getting a segmentation fault when I blah, blah, blah." In the first case there is no understanding of the problem. Any help will only solve the problem for the assignment, not offer any long-term knowledge. In the second case the student has shown they know what the problem is, but they don't understand what to do about it. I helped plenty of people in the lab when I was in school. I would talk through a problem with anyone. I wouldn't step in and just provide a block of code that fixed their problem.

That was my point. As harsh as it was.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.