我想你看过atoi()的帮助了:
The return value is undefined in case of overflow.
自己用程序判断吧。

解决方案 »

  1.   

    我就是不懂它的undefined in case of overflow.
    是什么意思,能告诉我吗?
    我该用什么方法来判断
      

  2.   

    它只管不停地计算:
    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溢出了,它仍然计算下去,结果是什么就可想而知了。
      

  3.   

    你看int (atoi) 或者 long int (atol) 最大能表示多大,对串作个限制。
    实在有特殊需要,自己编写转化函数。
    更正:上面的c如果是+,-,是转化sum的符号,不是后面的计算。
      

  4.   

    先用atof,在判断是不是溢出了