QT:ASSERT:文件C:\ Qt \ Qt5.14.2 \ 5.14.2 \ mingw73_64 \ include / QtCore / qstring.h,第1029行中的“ uint(i) 我有一个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; } 我有一个10行的文件,我想做一件在这种情况下不重要的特定事情。到达行尾后,程序崩溃,标题出现错误。我走在...

问题描述 投票:0回答:1

我有一个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;
       }
c++ qt file qt-creator
1个回答
0
投票

这意味着i对于从readLine()返回的任何内容都不是有效的索引。换句话说,i大于行的长度。

循环的逻辑真的很好奇。我确定它没有按照您认为的那样做。

© www.soinside.com 2019 - 2024. All rights reserved.