当前位置: 代码迷 >> QT开发 >> 关于QString的有关问题
  详细解决方案

关于QString的有关问题

热度:73   发布时间:2016-04-25 04:36:19.0
关于QString的问题
我写的一段程序有用到.at()函数,部分程序如下:
C/C++ code
QString  buff1;for(int j=0;j<buff1.size();j++)    {        if(buff1.at(j)=='!')        {   m=j;            break;        }    }


调试模式下,出现以下问题:
ASSERT: "i >= 0 && i < size()" in file /usr/include/qt4/QtCore/qstring.h, line 702
程序异常终止。

请问这是为何?

------解决方案--------------------
他的程序不是这里出的问题。打断点单步调试下,等你找到问题出在哪里的时候,估计你问题也解决了。
------解决方案--------------------
那个 assert : i >= 0 && i < size()应该是QString类里面的,是 QString::at()的时候调用的。但是他这个是QString确实是空的,应该是不会进入循环才对,单步调试看看。
------解决方案--------------------
QString buff1;
for(int j=0;j<buff1.count();j++)
{
if(buff1.at(j)=='!')
{ m=j;
break;
}
}

用count来表示 QString 里 QChar 的个数 size是指buf的大小

------解决方案--------------------
你先在程序每个地方打印一下,比如 qDebug() << "1"; qDebug() << "2";大概确认位置之后在对那个位置进行调试。
  相关解决方案