Чтение различного количества переменных из файла

У меня есть файл, который выглядит так:

1.23 2.34 4.4 6.5 3.4
3.43 5.34 5.44 4.5 1.4
.... and so on

Так что есть много линий, которые разделены пробелом. На самом деле я читаю их с:

double values[5];
while (infile >> values[0] >> values[1] >> values[2] >> values[3] >> values4]) {
    for (int j = 0; j < 5; j++) {
        coordinates.at(x).values.push_back(values[j]);
    }
 x++;
 }

И я хотел бы иметь возможность изменить количество значений в файле, например, с 5 до 20. Есть ли быстрый способ сделать это? Все, что я нашел, это чтение всей строки в виде строки, затем создание потока и использование множества функций для получения этих значений. Я знаю, что мое решение также неверно, потому что сначала я сохраняю их в таблице, а затем помещаю в вектор.

ОБНОВИТЬ:

Ответ на этот вопрос был неправильным, но я разобрался сам:

string line;
while (getline(file, line)) {
    stringstream ss(line);

    double val;
    while (ss >> val) {
        //do something
    }
    x++;
}

person Mateusz    schedule 05.03.2016    source источник


Ответы (1)


person    schedule
comment
На самом деле это не работает: ошибка terminate вызывается после создания экземпляра 'std::out_of_range' и есть 2 предупреждения: Локальная переменная не обновлена в цикле: файл, сс - person Mateusz; 05.03.2016
comment
Я добавил проверку if. Я думал, что вы поняли. И я не получаю сообщений об ошибках, которые вы получаете :( - person mustafagonul; 05.03.2016