我有一个10行的文件,我想做一件在这种情况下不重要的特定事情。到达行尾后,程序崩溃,标题出现错误。
我进入了它所引用的头文件的行:
{ Q_ASSERT(uint(i) < uint(size())); return QChar(d->data()[i]); }
但是我还是不明白。这是我的代码块:
QFile file("file.txt");
QTextStream in(&file);
QString s;
int i = 0;
while(!in.readLine().at(i).isNull()) {
s = s + in.readLine().at(i);
++i;
}
这意味着i
对于从readLine()
返回的任何内容都不是有效的索引。换句话说,i
大于行的长度。
循环的逻辑真的很好奇。我确定它没有按照您认为的那样做。