Я создал класс со всеми переменными, в основной программе я должен взять входные данные из файла данных, сравнить рост и вес с экземпляром объекта и, если он меньше, он должен быть выведен в другой файл. Я борюсь с основной программой, и я не знаю, где я иду не так. Он либо дает мне бесконечное число 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);
}
Может кто-нибудь подскажите пожалуйста, что я делаю не так или совет. Спасибо