input/ouput/ looping

VickieQuirk's Avatar, Join Date: Jun 2006
Newbie Member
I need help with the following assignment. I just can't seem to get it to work? It just creates a blank file for addresses.
If anyone can tell me what I am doing wrong I will be forever grateful..

Ok, here's the assignment:
You're working for a company that's building an email list from files of mail messages. They would like you to write a program that reads a file called mail.dat, and that outputs every string containing the @ sign to file addresses.dat. For the purpose of this project, a string is defined as it is by the C++ stream reader - a contiguous sequence of non-whitespace characters.
Here is what mail.dat has in it:
---------------------------------------------------------------------------
From: kadcock@clevelandstatecc.edu
Date: June 4, 2005

To: Joe_student@tbrschool.edu

Joe,

Hope you have a good semester.

Regards,
Ken Adcock
---------------------------------------------------------------------------
Here is what I have done:
Code: CPP
#include <iostream>
#include <fstream>
#include <string>

using namespace std;

int main()
{
   
    ifstream inFile;
    ofstream outFile;
    string tempString;
   
   
    inFile.open("mail.dat");
    outFile.open("addresses.dat");
   
    while(inFile)
    {
        inFile>>tempString;
        if(tempString.find('@')!=string::npos)
            outFile<<tempString;
       
    }
   
    inFile.close();
    outFile.close();
    return 0;
}

Last edited by shabbir; 28Jun2006 at 10:39.. Reason: Syntax highlighting
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
The problem is with
inFile>>tempString;
which does not allows the whitespaces and it just restricts itself to the first blank character and so does not fetch any email address in tempString. Try using getline instead.
0
VickieQuirk's Avatar, Join Date: Jun 2006
Newbie Member
thank you
0
shabbir's Avatar, Join Date: Jul 2004
Go4Expert Founder
Quote:
Originally Posted by VickieQuirk
thank you
My pleasure.