C ++ Qt QCustomPlot .txt отображение данных, ошибка индекса вне диапазона - PullRequest
0 голосов
/ 10 октября 2018

Привет. Я пытаюсь отобразить данные из файла .txt на графике в QCustomPLot. Я добавляю данные из QTextStream к двойному вектору. При этом я получаю сообщение об ошибке

"ASSERT failure in QVector<T>::operator[]: "index out of range", file /Users/.../Qt/5.11.1/clang_64/lib/QtCore.framework/Headers/qvector.h, line 436"

Iизменил размер вектора на автоматический размер, не выдает ошибок, но не выводит данные, график остается пустым.Так что я уверен, что ошибка связана с моей длиной строки.Другие сообщения о сбое ASSERT не имели особого смысла.

данные выглядят так:

1,2
2,3
0,1

и мой код такой:

QVector<double> v;
QFile textFile("/Users/10Exahertz/Documents/Hall Data/Test/data.txt");
if(textFile.open(QIODevice::ReadOnly))
{
    //auto size = v.size();
    QVector<double> x(2), y(2);
    double d;
    QTextStream textStream(&textFile);
    while (!textStream.atEnd()) {
        textStream >> d;
        if(textStream.status() == QTextStream::Ok){
            v.append(d);
        }
        else
            break;
    }
    for(int i=0; i<2; ++i)
    {
        x[i] = i;
        y[i] = v[i];
    }
ui->customPlot->addGraph();
// create graph and assign data to it:
//ui->customPlot->addGraph();
ui->customPlot->graph(0)->setData(x, y);
...