#include <fstream>
#include <string>
using namespace std;
struct Data {
string name;
int age;
double height;
};
void serialize(const Data& data, ostream& stream) {
stream.write(data.name.c_str(), data.name.size());
stream.write(reinterpret_cast<const char*>(&data.age), sizeof(data.age));
stream.write(reinterpret_cast<const char*>(&data.height), sizeof(data.height));
}
void deserialize(istream& stream, Data& data) {
getline(stream, data.name, '\0');
stream.read(reinterpret_cast<char*>(&data.age), sizeof(data.age));
stream.read(reinterpret_cast<char*>(&data.height), sizeof(data.height));
}
int main() {
Data data = {"John Doe", 35, 1.75};
ofstream file("data.bin", ios::binary);
serialize(data, file);
file.close();
Data readData;
ifstream file("data.bin", ios::binary);
deserialize(file, readData);
file.close();
cout << "Name: " << readData.name << endl;
cout << "Age: " << readData.age << endl;
cout << "Height: " << readData.height << endl;
return 0;
}