Qt C ++将QString转换为long

时间:2013-03-20 22:46:10

标签: c++ qt

我正在尝试使用以下命令将QString转换为long:

        QTextStream stream(&file);
        QString content = stream.readAll();
        qDebug() << "String: " << content;
        bool ok;
        long long a = content.toLong(&ok, 10);
        qDebug() << a;
        file.close();

但我从qDebug得到以下输出:

String:  "123451234512345
" 
0 

似乎这个qstring无法转换为long long变量,因为我总是得到0.我试图将较小的数字转换为1234并且它可以工作,但是当我尝试转换这个大数字时,我有问题。请帮忙

2 个答案:

答案 0 :(得分:5)

无符号长整数(32位)的最大值为4294967295,是有符号长整数的一半 - 您的值超出了该值。您应该使用toLongLong函数。

答案 1 :(得分:3)

你已经超越了长期的界限。字符串中的数字太大。查看最大尺寸。试试tolonglong。 http://qt-project.org/doc/qt-4.8/qstring.html#toLongLong