A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FFile%2FObject_Serialize</id>
		<title>C++/File/Object Serialize - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B%2FFile%2FObject_Serialize"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/File/Object_Serialize&amp;action=history"/>
		<updated>2026-04-18T17:51:41Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/File/Object_Serialize&amp;diff=890&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/File/Object_Serialize&amp;diff=890&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B/File/Object_Serialize&amp;diff=891&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B/File/Object_Serialize&amp;diff=891&amp;oldid=prev"/>
				<updated>2010-05-25T10:24:07Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Save and read class back and forth to a file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
class Person {&lt;br /&gt;
  char name[80];&lt;br /&gt;
  char areaCode[4];&lt;br /&gt;
  char prefix[4];&lt;br /&gt;
  char num[5];&lt;br /&gt;
public:&lt;br /&gt;
  Person() { };&lt;br /&gt;
  Person(char *n, char *a, char *p, char *nm)&lt;br /&gt;
  {&lt;br /&gt;
    strcpy(name, n);&lt;br /&gt;
    strcpy(areaCode, a);&lt;br /&gt;
    strcpy(prefix, p);&lt;br /&gt;
    strcpy(num, nm);&lt;br /&gt;
  }&lt;br /&gt;
  friend ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;stream, Person o);&lt;br /&gt;
  friend istream &amp;amp;operator&amp;gt;&amp;gt;(istream &amp;amp;stream, Person &amp;amp;o);&lt;br /&gt;
};&lt;br /&gt;
ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;stream, Person o)&lt;br /&gt;
{&lt;br /&gt;
  stream &amp;lt;&amp;lt; o.name &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
  stream &amp;lt;&amp;lt; &amp;quot;(&amp;quot; &amp;lt;&amp;lt; o.areaCode &amp;lt;&amp;lt; &amp;quot;) &amp;quot;;&lt;br /&gt;
  stream &amp;lt;&amp;lt; o.prefix &amp;lt;&amp;lt; &amp;quot;-&amp;quot;;&lt;br /&gt;
  stream &amp;lt;&amp;lt; o.num &amp;lt;&amp;lt; endl;&lt;br /&gt;
  return stream; // must return stream&lt;br /&gt;
}&lt;br /&gt;
istream &amp;amp;operator&amp;gt;&amp;gt;(istream &amp;amp;stream, Person &amp;amp;o)&lt;br /&gt;
{&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Enter name: &amp;quot;;&lt;br /&gt;
  stream &amp;gt;&amp;gt; o.name;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Enter area code: &amp;quot;;&lt;br /&gt;
  stream &amp;gt;&amp;gt; o.areaCode;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Enter prefix: &amp;quot;;&lt;br /&gt;
  stream &amp;gt;&amp;gt; o.prefix;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Enter number: &amp;quot;;&lt;br /&gt;
  stream &amp;gt;&amp;gt; o.num;&lt;br /&gt;
  cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
  return stream;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  Person personObject;&lt;br /&gt;
  char c;&lt;br /&gt;
  fstream pb(&amp;quot;phone&amp;quot;, ios::in | ios::out | ios::app);&lt;br /&gt;
  if(!pb) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Cannot open phone book file.\n&amp;quot;;&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
  for(;;) {&lt;br /&gt;
    do {&lt;br /&gt;
      cout &amp;lt;&amp;lt; &amp;quot;1. Enter numbers\n&amp;quot;;&lt;br /&gt;
      cout &amp;lt;&amp;lt; &amp;quot;2. Display numbers\n&amp;quot;;&lt;br /&gt;
      cout &amp;lt;&amp;lt; &amp;quot;3. Quit\n&amp;quot;;&lt;br /&gt;
      cout &amp;lt;&amp;lt; &amp;quot;\nEnter a choice: &amp;quot;;&lt;br /&gt;
      cin &amp;gt;&amp;gt; c;&lt;br /&gt;
    } while(c &amp;lt; &amp;quot;1&amp;quot; || c &amp;gt; &amp;quot;3&amp;quot;);&lt;br /&gt;
    switch(c) {&lt;br /&gt;
      case &amp;quot;1&amp;quot;:&lt;br /&gt;
        cin &amp;gt;&amp;gt; personObject;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Entry is: &amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; personObject;                       &lt;br /&gt;
        pb &amp;lt;&amp;lt; personObject;                         &lt;br /&gt;
        break;&lt;br /&gt;
      case &amp;quot;2&amp;quot;:&lt;br /&gt;
        char ch;&lt;br /&gt;
        pb.seekg(0, ios::beg);&lt;br /&gt;
        while(!pb.eof()) {&lt;br /&gt;
          pb.get(ch);&lt;br /&gt;
          if(!pb.eof()) &lt;br /&gt;
             cout &amp;lt;&amp;lt; ch;&lt;br /&gt;
        }&lt;br /&gt;
        pb.clear();                      &lt;br /&gt;
        cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
        break;&lt;br /&gt;
      case &amp;quot;3&amp;quot;:&lt;br /&gt;
        pb.close();&lt;br /&gt;
        return 0;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Serialize object Demo==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
#define SIZE 40&lt;br /&gt;
class Product {&lt;br /&gt;
  char item[SIZE]; &lt;br /&gt;
  int onhand;      &lt;br /&gt;
  double cost;     &lt;br /&gt;
public:&lt;br /&gt;
  Product(char *i, int o, double c)&lt;br /&gt;
  {&lt;br /&gt;
    strcpy(item, i);&lt;br /&gt;
    onhand = o;&lt;br /&gt;
    cost = c;&lt;br /&gt;
  }&lt;br /&gt;
  void store(fstream &amp;amp;stream);&lt;br /&gt;
  void retrieve(fstream &amp;amp;stream);&lt;br /&gt;
  friend ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;stream, Product ob);&lt;br /&gt;
  friend istream &amp;amp;operator&amp;gt;&amp;gt;(istream &amp;amp;stream, Product &amp;amp;ob);&lt;br /&gt;
};&lt;br /&gt;
ostream &amp;amp;operator&amp;lt;&amp;lt;(ostream &amp;amp;stream, Product ob)&lt;br /&gt;
{&lt;br /&gt;
  stream &amp;lt;&amp;lt; ob.item &amp;lt;&amp;lt; &amp;quot;: &amp;quot; &amp;lt;&amp;lt; ob.onhand;&lt;br /&gt;
  stream &amp;lt;&amp;lt; &amp;quot; on hand at $&amp;quot; &amp;lt;&amp;lt; ob.cost &amp;lt;&amp;lt; &amp;quot;\n&amp;quot;;&lt;br /&gt;
  return stream;&lt;br /&gt;
}&lt;br /&gt;
istream &amp;amp;operator&amp;gt;&amp;gt;(istream &amp;amp;stream, Product &amp;amp;ob)&lt;br /&gt;
{&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Enter item name: &amp;quot;;&lt;br /&gt;
  stream &amp;gt;&amp;gt; ob.item;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Enter number on hand: &amp;quot;;&lt;br /&gt;
  stream &amp;gt;&amp;gt; ob.onhand;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Enter cost: &amp;quot;;&lt;br /&gt;
  stream &amp;gt;&amp;gt; ob.cost;&lt;br /&gt;
  return stream;&lt;br /&gt;
}&lt;br /&gt;
void Product::store(fstream &amp;amp;stream)&lt;br /&gt;
{&lt;br /&gt;
  stream.write(item, SIZE);&lt;br /&gt;
  stream.write((char *) &amp;amp;onhand, sizeof(int));&lt;br /&gt;
  stream.write((char *) &amp;amp;cost, sizeof(double));&lt;br /&gt;
}&lt;br /&gt;
void Product::retrieve(fstream &amp;amp;stream)&lt;br /&gt;
{&lt;br /&gt;
  stream.read(item, SIZE);&lt;br /&gt;
  stream.read((char *) &amp;amp;onhand, sizeof(int));&lt;br /&gt;
  stream.read((char *) &amp;amp;cost, sizeof(double));&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  fstream fileStream(&amp;quot;fileStream&amp;quot;, ios::out | ios::binary); &lt;br /&gt;
  int i;&lt;br /&gt;
  Product productObject1(&amp;quot;p&amp;quot;, 12, 4.95);&lt;br /&gt;
  Product productObject2(&amp;quot;h&amp;quot;, 5, 9.45);&lt;br /&gt;
  Product productObject3(&amp;quot;w&amp;quot;, 22, 13.90);&lt;br /&gt;
  Product productObject4(&amp;quot;&amp;quot;, 0, 0.0);&lt;br /&gt;
  if(!fileStream) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Cannot open file for output.\n&amp;quot;;&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
  // write to file&lt;br /&gt;
  productObject1.store(fileStream);&lt;br /&gt;
  productObject2.store(fileStream);&lt;br /&gt;
  productObject3.store(fileStream);&lt;br /&gt;
  fileStream.close();&lt;br /&gt;
  // open for input&lt;br /&gt;
  fileStream.open(&amp;quot;fileStream&amp;quot;, ios::in | ios::binary); &lt;br /&gt;
  if(!fileStream) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Cannot open file for input.\n&amp;quot;;&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
  do {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Record # (-1 to quit): &amp;quot;;&lt;br /&gt;
    cin &amp;gt;&amp;gt; i;&lt;br /&gt;
    if(i == -1) &lt;br /&gt;
       break;&lt;br /&gt;
    fileStream.seekg(i*(SIZE+sizeof(int)+sizeof(double)), ios::beg);&lt;br /&gt;
    productObject4.retrieve(fileStream);&lt;br /&gt;
    cout &amp;lt;&amp;lt; productObject4;&lt;br /&gt;
  } while(fileStream.good());&lt;br /&gt;
  fileStream.close();&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>