-
December 11th, 2008, 03:59 AM
#1
Formatting Error
Hello,
I'm having a bit of a formatting error. I've written a program that reads in from file or keyboard and prints out to a new file. Unfortunately I'm getting a blank entry before the proper stuff prints, with normal strings like "," or endls being printed but not the actual interesting stuff. Not sure what's going on here so I'd appreciate any help. Here's a copy of my read method, not sure how helpful it'll be. Personally I don't see anything wrong (of course not, otherwise I wouldn't be asking for help ).
Code:
void Student::write(ostream &file)
{
file << "WORK??";
file << name.getFirst() << " ";
file << name.getMiddle() << " ";
file << name.getLast() << endl;
file << address.getStreet() << " ";
file << address.getCity() << " ";
file << address.getState() << " ";
file << zip.GetString() << endl;
file << id.GetString() << endl;
file << area.GetString() << "-";
file << phone.GetString() << endl;
}
So, my output file would look like this, whether I enter from keyboard or from a file.
WORK??
-
WORK??my name is
streetname thiscity mystate 11111
123456789
111-1111111
As for my read from keyboard method, here's a tiny bit (I just copied the first few lines as it's a pretty ugly method):
Code:
int Student::keyRead()
{
int endOfFile = 0;
string s;
cout << "Please enter first name or type -1 to quit: ";
cin >> s;
if (s == "-1")
{
endOfFile = -1;
name.setFirst(s);
}
else
{
name.setFirst(s);
cout << "Please enter middle name: ";
cin >> s;
name.setMiddle(s);
cout << "Please enter last name: ";
cin >> s;
name.setLast(s);
etc. & etc.
Basically my read from file is the same, just modified.
(My Student constructor is declared but at the moment empty.)
Any suggestions?? I'm probably missing something really obvious, aren't I?
Thanks in advance, smart folks!
-
December 11th, 2008, 04:30 AM
#2
Re: Formatting Error
As unlikely as it seems, maybe your getter/setter functions have bugs?
Incidentally, both your write() and keyRead() member functions look like they are better off implemented as non-member non-friend functions. In particular, write() looks like it should be an overloaded operator<< for std::ostream instead.
If you have concerns about using non-member functions when writing object oriented code, read:
-
December 12th, 2008, 04:03 PM
#3
Re: Formatting Error
I finally found the problem was actually in my for loop as I read things in. I had it reading a blank entry. >_< Oh well, it's fixed.
Thanks so much for the links, I really appreciate it. I've read through one of them and I'll read through the other two in a little bit. I still have a lot to learn about design and making good design choices! :]
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|