首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

关于QString的有关问题

2012-08-21 
关于QString的问题我写的一段程序有用到.at()函数,部分程序如下:C/C++ codeQStringbuff1;for(int j0jbu

关于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";大概确认位置之后在对那个位置进行调试。

热点排行