C++ 将.txt文件列存储到c++;

C++ 将.txt文件列存储到c++;,c++,C++,我是编程新手,所以我有一个基本问题。我目前有一个包含两列的文本文件。每行都有x和y数字,用空格分隔。以下是文件的前五行: 120 466 150 151 164 15 654 515 166 15 我想读取数据并将它们存储到x和Y列中,然后在程序中的其他地方调用数据,例如x[I]和Y[I]。说,我不知道有多少行。这是我的代码的一部分,我试图这样做 #include <fstream> #include <iostream> #include <string>

我是编程新手,所以我有一个基本问题。我目前有一个包含两列的文本文件。每行都有x和y数字,用空格分隔。以下是文件的前五行:

120 466
150 151
164 15
654 515
166 15
我想读取数据并将它们存储到x和Y列中,然后在程序中的其他地方调用数据,例如x[I]和Y[I]。说,我不知道有多少行。这是我的代码的一部分,我试图这样做

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

using namespace std;

int main()
{
    double X[];
    double Y[];

    ifstream inputFile("input.txt");
    string line;

    while (getline(inputFile, line))
    {
        istringstream ss(line);

        double x,y;

        ss >> x >> y;
        X = X + [x];
        Y = Y + [y];

        return 0;
    }
}
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
双X[];
双Y[];
ifstream输入文件(“input.txt”);
弦线;
while(getline(inputFile,line))
{
istringstream ss(线);
双x,y;
ss>>x>>y;
X=X+[X];
Y=Y+[Y];
返回0;
}
}

推荐的方法是使用一个
std::vector
或两个(每列一个),因为可以很容易地将值添加到其中。

最好使用vector:

vector<double> vecX, vecY;
double x, y;

ifstream inputFile("input.txt");

while (inputFile >> x >> y)
{
    vecX.push_back(x);
    vecY.push_back(y);
}

for(int i(0); i < vecX.size(); i++)
    cout << vecX[i] << ", " << vecY[i] << endl;
vectorvecx,vecY;
双x,y;
ifstream输入文件(“input.txt”);
同时(输入文件>>x>>y)
{
vecX.向后推_(x);
向量。推回(y);
}
for(int i(0);i这是一个重复的问题,巧合的是我已经深入地回答了。看看它,让我知道如果它有帮助,它应该。这与你遇到的具体问题有关。这是一个重复的问题,我建议您仔细阅读这篇文章,因为您是初学者,并且已经实现了一些与您相同的功能。@user5468794这不是一个重复的问题,因为他希望存储到单独的容器中。请考虑使用一个包含X和Y的结构,然后使用这些结构的
std::vector
。如果你真的很好,你可以想出如何使用std::pair而不是编写一个结构。这真的帮了大忙。感谢you@Abdul我相信这是你最好的解决办法。如果它解决了你的问题,请接受它。