Advertisement
Ejejejejejjr

Перегрузка операторов ввода/вывода

Dec 30th, 2020
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <fstream>
  4.  
  5. class Point
  6. {
  7.   public:
  8.     Point()
  9.     {
  10.         x = y = z = 0;
  11.     }
  12.  
  13.     Point(int x, int y, int z)
  14.     {
  15.         this->x = x;
  16.         this->y = y;
  17.         this->z = z;
  18.     }
  19.  
  20.     int x;
  21.     int y;
  22.     int z;
  23. };
  24.  
  25.  
  26. // перегрузка оператора вывода
  27. std::ostream &operator<<(/*константная ссылка на оператор вывода*/ std::ostream &os, /*ссылка на объект класса Point*/ const Point &point)
  28. {
  29.     os << point.x << " " << point.y << " " << point.z << "\n";
  30.  
  31.     return os;
  32. }
  33.  
  34.  
  35. // перегрузка оператора ввода
  36. std::istream &operator>>(/*ссылка на оператор ввода*/ std::istream &is, /*ссылка на объект класса Point*/ Point &point)
  37. {
  38.     is >> point.x >> point.y >> point.z;
  39.  
  40.     return is;
  41. }
  42.  
  43. int main(int argc, char *argv[])
  44. {
  45.     setlocale(LC_ALL, "Rus");
  46.     srand(time(NULL));
  47.  
  48.     Point point(7, 7, 7);
  49.  
  50.     std::string path = "file.txt";
  51.     std::fstream fs;
  52.     fs.open(path, /*запись*/ std::fstream::in | /*чтение*/ std::fstream::out | std::fstream ::app);
  53.     if (!fs.is_open())
  54.     {
  55.         std::cout << "Ошибка" << std::endl;
  56.     }
  57.     else
  58.     {
  59.         std::cout << "Файл открыт" << std::endl;
  60.         fs << point;
  61.         std::cout << point;
  62.         while (!fs.eof())
  63.         {
  64.             Point p;
  65.             fs >> p;
  66.             if (fs.eof())
  67.             {
  68.                 break;
  69.             }
  70.             std::cout << p << std::endl;
  71.         }
  72.     }
  73.     fs.close();
  74.    
  75.     return 0;
  76. }
  77.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement