Как взять указанный c ввод из файла с объектами класса и сравнить его со значением, затем вывести определенные строки - PullRequest
0 голосов
/ 06 апреля 2020

Я создал класс со всеми переменными, в основной программе я должен взять входные данные из файла данных, сравнить рост и вес с экземпляром объекта и, если он меньше, он должен быть выведен в другой файл. Я борюсь с основной программой, и я не знаю, где я иду не так. Он либо дает мне бесконечное число l oop либо в exe, либо в выходном файле (0).

Вот мой заголовочный файл, чтобы дать вам представление:

class Baby
{
public:
    Baby();
    Baby(string n, string a, char s, double w, double l);
    ~Baby();

    char getSex() const;
    string getName() const;

    friend bool operator < (const Baby& b1, const Baby& b2);


    friend istream& operator >>(istream& in, Baby& m);
    friend ostream& operator << (ostream& outs, const Baby& m);
private:
    string name;
    string address;
    char sex;
    double weight;
    double length;
};

Эти приватные переменные находятся в файле. Поэтому необходимо сравнить вес и рост, а если меньше, то должны быть выведены все 6 строк.

Baby averageBaby ("", "", '', 3.2, 52); ...... Созданный объект

Младенцы;

Затем я использовал l oop:

while(!infile.eof())
    {
        infile >> babies;
        if(babies < averageBaby)
            outfile << babies <<endl;

    }

Но это дало мне инфинте oop на exe.

Я также пытался

 while(!infile.eof())
    {
        infile >> namee >> addresss >> sexx >> weightt >>lengthh;

        if(baby1 < averageBaby)
            outfile << baby1;
    }

Это дало мне бесконечный l oop нулей в выходном файле.

Это перегруженный оператор сравнения

bool operator < (const Baby& b1, const Baby& b2)
{
    return (b1.weight < b2.weight && b1.length < b2.length);
}

Может кто-нибудь подскажите пожалуйста, что я делаю не так или совет. Спасибо

...