Add money_binary.cpp

main
p68710245 1 year ago
parent 637599084a
commit 3a87df4f4c

@ -0,0 +1,47 @@
#include <iostream>
#include <fstream>
#include <string>
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<char *>(&yuan), sizeof(yuan));
ofile.write(reinterpret_cast<char *>(&jiao), sizeof(jiao));
ofile.write(reinterpret_cast<char *>(&fen), sizeof(fen));
ofile.close();
}
void read_from_binary(const char *filename)
{
std::ifstream ifile(filename, std::ios::binary);
ifile.read(reinterpret_cast<char *>(&yuan), sizeof(yuan));
ifile.read(reinterpret_cast<char *>(&jiao), sizeof(jiao));
ifile.read(reinterpret_cast<char *>(&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;
}
Loading…
Cancel
Save