如何从字符串中解析0x345
,23423
,0172
(可能还有0b001111
)等数字?
我找到了常规的QString::toXXX
函数,但它们采用了一个基本参数,但是我希望以C-Compiler的方式从字符串中确定基数。
我认为Qt中必定存在一些东西。但我只发现了上面提到的或明确采用base的其他方法(例如作为流操纵器)。
提前谢谢。
答案 0 :(得分:5)
QString::toXXX
做你想做的事(二进制表示除外):
如果base为0,则使用C语言约定:如果字符串以“0x”开头,则使用base 16;如果字符串以“0”开头,则使用基数8;否则,使用基数10.
所以只需使用int i = s.toInt(NULL, 0);
答案 1 :(得分:1)
事实证明,你只想对二进制数字这样做。
您必须通过以下方式手动检测基础(通过读取前缀):
QString::left
或然后使用该基础执行QString:toXXX
。