Написать программы на C++ для сериализации и десериализации структуры Person
.
Структура Person
определяется следующим образом:
struct Email {
std::string nickname;
std::string server;
};
struct Person {
std::string first_name;
std::string last_name;
Email email;
size_t age;
std::string phone;
};
Пример сериализации структуры Person
$ ./pack /path/to/file
Enter data to fields of the Person structure.
First name:
Petr↵
Last name:
Ivanov↵
Email:
[email protected]
Age(optional):
20↵
Phone (optional):
↵
Пример десериализации структуры Person
$ ./unpack /path/to/file
[Person]
Fisrt name: Petr
Last name: Ivanov
Email: [email protected]
Age: 20
Создаем файл в формате xml
и заполняем его.
$ ./pack test.xml
Enter data to fields of the Person structure.
First name:
$ Ivan
Last name:
$ Ivanov
Email:
$ [email protected]
Age (optional):
$ 45
Phone (optional):
$ 8 (999) 999-99-99
Проверяем наличие test.xml
.
$ cat test.xml
<?xml version="1.0"?>
<person>
<first_name>Ivan</first_name>
<last_name>Ivanov</last_name>
<email>[email protected]</email>
<age>45</age>
<phone>8 (999) 999-99-99</phone>
</person>
Теперь распаковываем файл.
$ ./unpack test.xml
[Person]
First name: Ivan
Last name: Ivanov
Email: [email protected]
Age (optional): 45
Phone (optional): 8 (999) 999-99-99
$ xmllint test.xml
<?xml version="1.0"?>
<person>
<first_name>Ivan</first_name>
<last_name>Ivanov</last_name>
<email>[email protected]</email>
<age>45</age>
<phone>8 (999) 999-99-99</phone>
</person>
Библиотеки для работы с различными форматами данных: