将值存储在从文件 c++98 读取的对象的数组或向量中

To store values in Array or vector of Objects reading from file c++98

文件中有 6 列条目,其中每列分别指定(天数、小时数、温度、相对湿度、风速、全球水平太阳辐射)的值。我们如何将这些值存储在数组或对象向量中?请帮忙

1   1   13.7    58  2.7 0
1   2   13.5    64  1.4 0
1   3   13  70  0   0
1   4   12.2    75  0.5 0
1   5   11.4    80  1   0
1   6   10.6    85  1.5 0
1   7   11.1    80  1   0
1   8   11.5    78  0.5 13
1   9   12  76  0   150
1   10  15.1    76  1   355
1   11  18.3    73  2.1 532
1   12  21.4    70  3.1 652
1   13  21.9    62  2.9 706
1   14  22.5    56  2.8 686
1   15  23  49  2.6 593
1   16  22.6    50  2.4 434
1   17  22.2    52  2.3 234
1   18  21.8    53  2.1 45
1   19  19.9    57  1.4 0
1   20  17.9    60  0.7 0
1   21  16  63  0   0
1   22  15.7    60  1.2 0
1   23  15.5    56  2.4 0
1   24  15.2    53  3.6 0

2   1   14.1    58  2.4 0
2   2   13.1    63  1.2 0
2   3   12  69  0   0
2   4   11.1    74  0   0
2   5   10.1    79  0   0
2   6   9.2 84  0   0
2   7   9.9 79  0.3 0
2   8   10.7    75  0.7 13
2   9   11.4    71  1   150
2   10  13.5    60  1.3 358
2   11  15.6    51  1.7 539
2   12  17.7    43  2.1 664
2   13  19.8    37  2.4 718
2   14  21.9    31  2.7 697
2   15  24  26  3.1 603
2   16  23.7    27  2.8 443
2   17  23.3    28  2.4 240
2   18  23  29  2.1 47
2   19  21.1    35  1.9 0
2   20  19.1    42  1.7 0
2   21  17.2    50  1.5 0
2   22  16.1    53  1.5 0
2   23  15.1    57  1.5 0
2   24  14  61  1.5 0

std::getline 提取每一行,std::stringstream 从该行提取每个值:

#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
#include <vector>

struct Data {
    unsigned int days, hours;
    float humidity, windSpeed, radiation;
};

int main()
{
    std::vector<Data> data;

    std::ifstream file("yourfile.txt");
    for (std::string line; std::getline(file, line); )
    {
        Data d;
        std::stringstream ss(line);
        ss >> d.days >> d.hours >> d.humidity >> d.windSpeed >> d.radiation;
        data.push_back(d);
    }
}