Understanding toInt() function to convert QString to int
-
wrote on 21 Jul 2019, 13:48 last edited by
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.
-
wrote on 21 Jul 2019, 14:02 last edited by
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 }
-
wrote on 21 Jul 2019, 14:04 last edited by
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.
-
wrote on 21 Jul 2019, 14:07 last edited by
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();
. -
wrote on 21 Jul 2019, 14:10 last edited by jefazo92
Thank you @Kerndog73 , I will include it anyways as a checking tool for my program and to perform conversion again if it failed previously. :)
1/5