/* * exercise_2.hpp * * Created on: 15 окт. 2021 г. * Author: alexander */ #pragma once #include #include #include #include "src-gen/exercise_2.pb.h" void exercise_1_2() { exercise_2::FullName fn; fn.set_name("Alexander"); fn.set_surname("Zhirov"); fn.set_patronymic("Alexandrovich"); exercise_2::Student s; *s.mutable_name() = fn; s.add_grades(5); s.add_grades(2); s.add_grades(4); s.add_grades(3); s.add_grades(4); s.add_grades(3); s.add_grades(4); s.add_grades(3); s.set_avg_score(std::accumulate(s.grades().begin(), s.grades().end(), 0) / s.grades().size()); exercise_2::StudentsGroup sg; *sg.add_students() = s; std::ofstream out("student.bin", std::ios_base::binary); sg.SerializeToOstream(&out); out.close(); exercise_2::StudentsGroup new_sg; std::ifstream in("student.bin", std::ios_base::binary); if (new_sg.ParseFromIstream(&in)) { std::cout << new_sg.students(0).name().surname() << std::endl; std::cout << new_sg.students(0).avg_score() << std::endl; } else { std::cout << "Error!" << std::endl; } in.close(); }