/////////////////////////////////////////////////////////////////////// // serialize.cpp - serialze list to file // // Exam4:Q6 // // Jim Fawcett, CSE687 - Object Oriented Design, Spring 2005 // /////////////////////////////////////////////////////////////////////// #include #include #include #include typedef std::list stringList; void serialize(const stringList& list, char delim, std::ostream& os) { stringList::const_iterator it; for(it=list.begin(); it!=list.end(); ++it) os << it->c_str() << delim; os << delim; } void deserialize(stringList& list, char delim, std::istream& is) { stringList::value_type temp; char ch; while(is.good()) { is.get(ch); if(ch!=delim) temp.push_back(ch); else { list.push_back(temp); temp.clear(); } } } void main() { typedef std::list stringList; stringList aList, bList; aList.push_back("ardvarrk"); aList.push_back("platypus"); aList.push_back("mule"); std::ofstream os("temp.dat"); serialize(aList,'\n',os); os.close(); std::ifstream is("temp.dat"); std::cout << "\nserialized list is:\n"; std::cout << is.rdbuf(); is.seekg(std::ios::beg); std::cout << "\ndeserialized list is:\n"; deserialize(bList,'\n',is); stringList::iterator it; for(it=bList.begin(); it!=bList.end(); ++it) std::cout << it->c_str() << '\n'; std::cout << "\n\n"; }