fork download
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. struct record {
  5. int a, b;
  6.  
  7. record(int a=0, int b=0) : a(a), b(b) {}
  8. };
  9.  
  10. std::ostream &operator<<(std::ostream &os, record const &r) {
  11. os.write((char *)&r.a, sizeof(r.a));
  12. os.write((char *)&r.b, sizeof(r.b));
  13. return os;
  14. }
  15.  
  16. std::istream &operator>>(std::istream &is, record &r) {
  17. is.read((char *)&r.a, sizeof(r.a));
  18. is.read((char *)&r.b, sizeof(r.b));
  19. return is;
  20. }
  21.  
  22. int main() {
  23. static const char fname[] = "junk.dat";
  24.  
  25. std::fstream file(fname, std::ios::in | std::ios::out | std::ios::ate);
  26.  
  27. if (!file.is_open())
  28. file.open(fname, std::ios::out);
  29.  
  30. file << record(1,2);
  31. file << record(3,4);
  32. file.seekg(0);
  33.  
  34. record r;
  35. file >> r;
  36.  
  37. std::cout << r.a << ", " << r.b << '\n';
  38. return 0;
  39. }
  40.  
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty