gpt4 book ai didi

c++ - 如何让我的重载分数 >> 运算符识别负数。

转载 作者:行者123 更新时间:2023-11-30 00:51:32 26 4
gpt4 key购买 nike

好的,过去 2 天我一直在努力让它发挥作用,但无济于事。本质上有一个文本文件,程序从中提取分数和带分数,我的 >> 运算符应该将它们转换为正常分数以由我的 << 运算符输出,这工作正常。但是一旦我的函数在文件中命中 -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;
}

最佳答案

使用默认值 Den = 1 而不是 0。由于除以 0 而崩溃。

关于c++ - 如何让我的重载分数 >> 运算符识别负数。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21467410/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com