QVector <QString> frequency;
QVector <QString> gain;
QString ref_data;
QStringList rowOfData;
QStringList rowData;
if (ReferenceData.open(QIODevice::ReadOnly | QIODevice::Text)) {
ref_data = ReferenceData.readAll();
rowOfData = ref_data.split("\n");
ReferenceData.close();
}
for (int x = 9; x < rowOfData.size(); x++) {
rowData = rowOfData.at(x).split(",");
frequency.push_back(rowData[0]);
gain.push_back(rowData[1]);
}
我从文件中读取了所有数据。当我使用push_back
时,出现错误QList<T>::operator[] "index out of range"
。我还使用了frequency.push_back(rowData.at(0));
,然后我收到QList<T>::at "index out of range"
错误!
如何解决这个问题?
答案 0 :(得分:2)
后期循环应处理坏行,例如像这样,只需使用调试打印跳过它们:
for (int x = 9; x < rowOfData.size(); x++) {
rowData = rowOfData.at(x).split(",");
if (rowData.size() >= 2) {
frequency.push_back(rowData[0]);
gain.push_back(rowData[1]);
}
else qDebug() << "Skipping bad row" << x << rowOfData.at(x);
}