QString函数在CentOS上给出错误的结果

时间:2015-07-02 05:12:22

标签: c++ string qt

我正在使用C ++ Qt Library,以下代码在Windows上完美运行但不在CentOS上运行:

if(line.startsWith("[", Qt::CaseInsensitive))
{
    int index = line.indexOf(']', 0, Qt::CaseInsensitive);
    QString subLine = line.mid(index+1);
    subLine = subLine.trimmed();
    tokenList = subLine.split("\t");
}
else
{
    tokenList = line.split("\t");
}

我有一行[x.x.x.x] ../dir/file.extension,我想在将行划分为令牌时忽略[x.x.x.x]部分。我在Windows上使用VC9进行调试,并且工作正常。

编辑:我删除了mid()并使用了right()仍然存在同样的问题,在Windows上工作但在CentOS上没有。

编辑:在使用QMessageBox在linux上调试之后,我得出结论,如果阻止,控件永远不会进入内部,我尝试使用if(line.data()[0] =='[')但结果相同。

1 个答案:

答案 0 :(得分:1)

您的代码可以简化。

line.remove(QRegExp("\\[\\s+\\d+\\.\\d+\\.\\d+\\.\\d+\\s+\\]"));
tokenList = line.split("\t");