以下代码,如果str长度超过10,l就得不到期望得值,该怎么处理才好,请指教CString str="123456789012";
long l;
l=atol(str);

解决方案 »

  1.   

    #include<iostream>
    #include<sstream>using namespace std;
    int main(int,char*[])
    {
        long long x;
        stringstream con;
        con<<"123456789012";
        con>>x;
        cout<<x;
        return 0;
    }
      

  2.   

    那对于一个超大的整数用什么类型的,不会是double吧?
      

  3.   

    那就用long long 啊,转换方法见上面的回复
      

  4.   

    试了,怎么在对话框工程里用了,提示long long x;
    出错?
      

  5.   

    不考虑跨平台的问题的话
    使用LONGLONG这个windows data type来保存64位整型
    使用以下的API来转换BOOL StrToInt64Ex(   LPCTSTR pszString,
        DWORD dwFlags, /*STIF_DEFAULT --默认十进制*/
        LONGLONG *pllRet /*返回结果*/
    );
      

  6.   

    请问:包含StrToInt64Ex的头文件是什么,我的MSDN里面只找到StrToIntEx
      

  7.   


    Header shlwapi.h 
    Import library shlwapi.lib