Ggn*_*ome 1 c++ operator-overloading
好的,所以我一直试图在过去的两天里让它工作,但无济于事.本质上有一个文本文件,程序从中提取分数和混合数,我的>>运算符应该将它们转换为正常分数,由我的<<运算符输出,这很好.但是一旦我的函数在文件中命中-8,程序就会崩溃并结束,让我在控制台上按下"按任意键继续"结束提示.它处理-4/5和-10/5没问题,分别返回-4/5和-2.但当负数是整数时,它会崩溃.
istream& operator>>(istream& input, fraction& fr)
{
int Num=0;
int Den=0;
int Whole=0;
input >> Num;
if (input.peek() == '+')
{
Whole = Num;
input.ignore() >> Num;
input >> Den;
}
else if (input.peek() == '/')
{
input.ignore() >> Den;
}
else if (input.peek() == ' ')
{
input.ignore();
Den = 1;
}
Num = (Whole*Den) + Num;
fr = fraction(Num, Den);
return input;
}
Run Code Online (Sandbox Code Playgroud)