从文件C ++读取多个数字

时间:2019-03-22 14:10:16

标签: c++

我从.txt文件中读取数据时遇到问题,我有超过一百万行,如下所示:

57 1599 1 2.463 1.247 5.644 
58 0 1 3.675 2.175 1.21 

我必须加载数据并将每个数字加到不同的数组或向量中。

这是我的代码,但是工作太慢。

void divideString(std::string text)
{
    std::istringstream iss(text);
    std::vector<std::string> results(std::istream_iterator<std::string>{iss},
    std::istream_iterator<std::string>());

    coordinates tmp;

    tmp.x = std::stoi(results[0]);
    tmp.y = std::stoi(results[1]);

    coordinatesCells.push_back(tmp);

    phase.push_back(std::stoi(results[2]));

    orientation tmp2;

    tmp2.k1 = std::stof(results[3]);
    tmp2.k2 = std::stof(results[4]);
    tmp2.k3 = std::stof(results[5]);

    orientationCells.push_back(tmp2);

}


void loadDataFromFile()
{
    std::string line;
    std::ifstream myfile("file.txt");

    if (myfile.is_open())
    {
        while (getline(myfile, line))
        {
            divideString(line);
        }
    }
    else
    {
        std::cout << "Unable to open file";
    }
}

另一个问题是有时我在行中会有不同数量的数据。

您是否知道如何快速加载此数据?

0 个答案:

没有答案