// IODetails.C #include "prompt.h" #include "IODetails.h" istream& GetLine(istream & in, String& s) { // quick and dirty const int SIZE = 500; char buf[SIZE]; if (in) { in.getline(buf, SIZE); s = String(buf); } else { s = String(""); } return in; } istream& operator >> (istream & in, GuestInfo & g) { prompt("Guest name? "); GetLine(in, g.name); if (in) { prompt("address (on one line)? "); GetLine(in, g.address); prompt("room number? "); in >> g.roomNumber; in.ignore(100, '\n'); prompt("charges? "); in >> g.charges; in.ignore(100, '\n'); } return in; } istream& operator >> (istream & in, GuestInfoFixed & g) { prompt("Guest name? "); in.getline(g.name, STRSIZE); if (in) { prompt("address (on one line)? "); in.getline(g.address, STRSIZE); prompt("room number? "); in >> g.roomNumber; in.ignore(100, '\n'); prompt("charges? "); in >> g.charges; in.ignore(100, '\n'); } return in; } ostream& operator << (ostream & out, const GuestInfo & g) { out << g.name << endl; out << " "<< g.address << endl; out << " " << g.roomNumber << endl; out << " " << g.charges << endl; return out; }