/////////////////////////////////////////////////////////////////////// // VecSerialize.cpp - serialze vector to strea, // // Exam3:Q10 // // Jim Fawcett, CSE687 - Object Oriented Design, Spring 2005 // /////////////////////////////////////////////////////////////////////// #include #include #include #include typedef std::vector stringVec; void serialize(const stringVec& list, char delim, std::ostream& os) { stringVec::const_iterator it; for(it=list.begin(); it!=list.end(); ++it) os << it->c_str() << delim; os << delim; } void deserialize(stringVec& list, char delim, std::istream& is) { stringVec::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() { stringVec 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); stringVec::iterator it; for(it=bList.begin(); it!=bList.end(); ++it) std::cout << it->c_str() << '\n'; std::cout << "\n\n"; }