从文件中读取不同数量的变量

时间:2016-03-05 18:01:05

标签: c++ vector file-read

我有一个看起来像的文件:

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++;
}

1 个答案:

答案 0 :(得分:1)

#include <iostream>
#include <fstream>
#include <sstream>

int main() {
    std::ifstream file("data");

    while (file) {
        std::string line;
        std::getline(file, line);

        std::stringstream ss(line);
        while (ss) {
            double val;
            if (ss >> val) {
                //
                // do whatever you want here
                //
            }
        }
    }
}