我正在尝试使用以下命令将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并且它可以工作,但是当我尝试转换这个大数字时,我有问题。请帮忙
答案 0 :(得分:5)
无符号长整数(32位)的最大值为4294967295,是有符号长整数的一半 - 您的值超出了该值。您应该使用toLongLong
函数。
答案 1 :(得分:3)
你已经超越了长期的界限。字符串中的数字太大。查看最大尺寸。试试tolonglong。 http://qt-project.org/doc/qt-4.8/qstring.html#toLongLong