0
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"エラーが発生しました!

この問題を解決するには?

4

1 に答える 1

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);
}
于 2013-04-20T20:38:34.380 に答える