• Почему считывается с файла только 1 слово, а не весь текст?

    @res2001
    Developer, ex-admin
    Не раскрыта тема о классе House. Не видя его трудно что-то сказать.

    Но могу предположить, что в House, например, поле address является std::stringом.
    А std::string хранит свою строку в динамической памяти и sizeof(std::string) в общем случае совсем не равен размеру хранящейся в нем строки. Записывая в файл sizeof(std::string) байт вы записываете грубо говоря только адрес памяти где лежит строка и размер строки, но не саму строку.
    Вам нужно делать нормальную сериализацию/десериализацию полей объекта House.
    Ответ написан
    4 комментария
  • Не правильно сортируется параллель под побочной диагональю. Что не так и что надо исправить?

    Gremlin92
    @Gremlin92
    Целеустремленный
    Лови такой код
    //g++  7.4.0
    https://qna.habr.com/q/1088148
    #include<iostream>
    #include <cstring>
    #include<cmath>
    #include<cstdlib>
    #include<ctime>
    #include<vector>
    #include <bits/stdc++.h>
    using namespace std;
    
    
    int main()
    {
      setlocale(LC_ALL, "RUS");
      srand(time(NULL));
    
      const int n = 5;
      double a[n][n], buf;
      int k = 1;
    
      cout << "Массив a" << endl;
      for (int i = 0; i < n; i++)
      {
        for (int j = 0; j < n; j++)
        {
          a[i][j] = rand() % 20 - 10;
          cout << "a[" << i << "][" << j << "] = " << a[i][j] << "\t";
        }
        cout << endl;
        cout << endl;
      }
        vector<double> vd;
      for (int i = 0; i < n; i++)
      {
        for (int j = 0;j<n;j++)
        {
          if(i==j)
              break;
            if(i==j+1)
                vd.push_back(a[i][j]);
        }
      }
       sort(vd.begin(), vd.end());
      for(int i=0;i<vd.size();i++)
          
      cout <<vd[i]<< endl;
        k=0;
        for (int i = 0; i < n; i++)
      {
        for (int j = 0;j<n;j++)
        {
          if(i==j)
              break;
            if(i==j+1){
                a[i][j] = vd[k];
                k++;
            }
        }
      }
      cout << "Отсортированная параллель побочной диагонали расположенной под диагональю" << endl;
      for (int i = 0; i < n; i++)
      {
        for (int j = 0; j < n; j++)
        {
          cout << "a[" << i << "][" << j << "] = " << a[i][j] << "\t";
        }
        cout << endl;
        cout << endl;
      }
    }
    Ответ написан
    2 комментария