我就是不懂它的undefined in case of overflow. 是什么意思,能告诉我吗? 我该用什么方法来判断
它只管不停地计算: int sum = 0; repeat { get a char => c; if c is not digit(0..9) or +,- then break; sum = sum*10 + (c-'0'); } return sum; 这样即使sum溢出了,它仍然计算下去,结果是什么就可想而知了。
你看int (atoi) 或者 long int (atol) 最大能表示多大,对串作个限制。 实在有特殊需要,自己编写转化函数。 更正:上面的c如果是+,-,是转化sum的符号,不是后面的计算。
是什么意思,能告诉我吗?
我该用什么方法来判断
int sum = 0;
repeat {
get a char => c;
if c is not digit(0..9) or +,- then break;
sum = sum*10 + (c-'0');
}
return sum;
这样即使sum溢出了,它仍然计算下去,结果是什么就可想而知了。
实在有特殊需要,自己编写转化函数。
更正:上面的c如果是+,-,是转化sum的符号,不是后面的计算。