hep me please

Discussion in 'Mac Programming' started by mnmn, Jan 14, 2013.

  1. macrumors newbie

    Joined:
    Jan 14, 2013
    #1
    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:
     
  2. macrumors regular

    Joined:
    Jul 23, 2002
    Location:
    OR
    #2
    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.
     
  3. ArtOfWarfare, Feb 11, 2013
    Last edited: Feb 11, 2013

    macrumors 604

    ArtOfWarfare

    Joined:
    Nov 26, 2007
    #3
    @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...
     
  4. LPZ
    macrumors 65816

    Joined:
    Jul 11, 2006
    #4
    He's long gone. His assignment was due almost a month ago. :)
     
  5. macrumors regular

    Joined:
    Jul 23, 2002
    Location:
    OR
    #5
    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.
     

Share This Page