#include #include #include class Money { private: int yuan, jiao, fen; public: Money(int _yuan = 0, int _jiao = 0, int _fen = 0) : yuan{_yuan}, jiao{_jiao}, fen{_fen} { } friend std::ostream &operator<<(std::ostream &os, const Money &m) { if (&os == &std::cout) return os << m.yuan << "元" << m.jiao << "角" << m.fen << "分\n"; else return os << m.yuan << ' ' << m.jiao << ' ' << m.fen << '\n'; } void save_to_binary(const char *filename) { std::ofstream ofile(filename, std::ios::binary); ofile.write(reinterpret_cast(&yuan), sizeof(yuan)); ofile.write(reinterpret_cast(&jiao), sizeof(jiao)); ofile.write(reinterpret_cast(&fen), sizeof(fen)); ofile.close(); } void read_from_binary(const char *filename) { std::ifstream ifile(filename, std::ios::binary); ifile.read(reinterpret_cast(&yuan), sizeof(yuan)); ifile.read(reinterpret_cast(&jiao), sizeof(jiao)); ifile.read(reinterpret_cast(&fen), sizeof(fen)); ifile.close(); } }; int main() { Money m{1, 2, 3}, n{}; m.save_to_binary("money.dat"); n.read_from_binary("money.dat"); std::cout << n; return 0; }