Я студент cis221, и мне дали домашнее задание, которое я просто не могу понять ...
Код ниже - перегруженный оператор ввода для моего класса "Дробь".
istream& operator>>(istream& in, Fraction& fract)
{
cout << "Enter the whole number part for the fraction ";
in >> fract.Whole;
cout << "Enter the Numerator ";
in >> fract.Numerator;
cout << "Enter a Denominator ";
in >> fract.Denominator;
try
{
if (fract.Denominator == 0)
throw(FractionException(fract, "Deno input was 0, setting to 1"));
}
catch(FractionException e)
{
fract.Denominator = 1;
e.DisplayMessage();
}
fract.reduceFraction();
return in;
}
Который называется main.
void main()
{
//Declarations
srand((unsigned)time(NULL));
int i = 0;
Fraction fract[4];
for (i=0; i<5; i++)
{
cin >> fract[i];
}
for (i=0; i<5; i++)
{
cout << fract[i];
}
}
Насколько я понимаю, этот код должен выполняться идеально;тем не менее, код непрерывно зацикливается.Это верно, даже если исключение никогда не генерируется.
Я установил контроль над циклом var "i" и буквально наблюдал, как он отсчитывает от 0 до 4 ... Я понятия не имею, что не так...
Заранее спасибо!