Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Understanding toInt() function to convert QString to int



  • Hi everyone,

    I'm trying to convert a QString into an int. I have read the documentation (https://doc.qt.io/qt-5/qstring.html#toInt) but I don't understand the purpose of the *ok pointer in the toInt() function. What I'm trying to do is something as simple as converting QString Number = "1234" into an integer. That's all.

    Any help would be greatly appreciated. Thank you.



  • If ok is not nullptr, failure is reported by setting *ok to false, and success by setting *ok to true.

    The ok pointer is used for error reporting.

    QString str = "1234";
    bool ok;
    int num = str.toInt(&ok);
    if (!ok) {
      // conversion failed
    }
    


  • Hi @Kerndog73 ,

    So basically I could do something as :

    QString str = "1234";
    bool ok;
    int num = str.toInt(&ok);
    if (!ok) {
      cout << "Conversion failed. Repeat conversion" <<endl;
    }
    

    It's just to check errors but should not affect my conversion from QString to int.



  • That's right, it won't effect the conversion. It's only used for checking errors. If you're confident that the string is a valid integer then you could do str.toInt();.



  • Thank you @Kerndog73 , I will include it anyways as a checking tool for my program and to perform conversion again if it failed previously. :)


Log in to reply