1

我正在尝试使用以下命令将 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 这样的较小数字并且它可以工作,但是当我尝试转换这个大数字时,我遇到了问题。请帮忙

4

2 回答 2

5

无符号长整数(32 位)的最大值为 4294967295 - 有符号长整数的一半 - 您的值超过了该值。您应该改用该toLongLong功能。

于 2013-03-20T22:52:49.970 回答
3

你已经超出了很长的范围。字符串中的数字太大。长时间查找最大尺寸。试试 tolonglong 。 http://qt-project.org/doc/qt-4.8/qstring.html#toLongLong

于 2013-03-20T22:50:50.920 回答