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は、常に0になるため、long long変数に変換できないようです。1234のように小さい数を変換しようとしましたが、機能しますが、この大きな数を変換しようとすると問題が発生します。助けてください

4

2 に答える 2

5

unsigned long(32ビット)の最大値は4294967295で、signedlongの半分です。これは値を超えています。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 に答える