From 44d085f265583f0e3cbef294bbe2c8e300aaa452 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Wed, 3 Apr 2024 17:47:07 +0300 Subject: [w6] Added exercise descriptions and solutions to 1-9 --- week06/Exercise09.cpp | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 week06/Exercise09.cpp (limited to 'week06/Exercise09.cpp') diff --git a/week06/Exercise09.cpp b/week06/Exercise09.cpp new file mode 100644 index 0000000..97a9c27 --- /dev/null +++ b/week06/Exercise09.cpp @@ -0,0 +1,55 @@ +#include +#include +#include + +struct Person { +private: + char name[1024]; + unsigned age; + +public: + Person(const char name[1024], unsigned age) { + strcpy(this->name, name); + this->age = age; + } + + const char* GetName() { + return name; + } + unsigned GetAge() { + return age; + } + + void Save(const char* fileName) { + std::ofstream outFile(fileName, std::ios::binary); + if (!outFile.is_open()) { + std::cout << "Couldn't open file!" << std::endl; + return; + } + + outFile.write((const char*)&age, sizeof(age)); + outFile.write((const char*)&name, sizeof(name)); + outFile.close(); + } + + void Load(const char* fileName) { + std::ifstream inFile(fileName, std::ios::binary); + if (!inFile.is_open()) { + std::cout << "Couldn't open file!" << std::endl; + return; + } + + inFile.read((char*)&age, sizeof(age)); + inFile.read((char*)&name, sizeof(name)); + } +}; + +int main() { + Person p1("Jordan", 22); + p1.Save("ex9.dat"); + + Person p2("Michael", 89); + p2.Load("ex9.dat"); + + std::cout << p2.GetName() << " " << p2.GetAge() << std::endl; +} -- cgit v1.2.3