2016-10-31 104 views
3

我是编程新手,所以我有可能是一个基本问题。我目前有一个2列的文本文件。每行有由空格分隔的x和y数字。这些文件的前五行:将一个.txt文件列存储到C++中的数组中

120 466 
150 151 
164 15 
654 515 
166 15 

我想读取数据并将它们存储到X和Y列,然后一些呼吁数据,其中还有在程序如X [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; 
    } 
} 
+1

这是一个重复的问题,是巧合我在深度已经回答。检查它出来http://stackoverflow.com/questions/40307840/reading-file-content-opened-with-ifstream/40309722#40309722并让我知道它是否有帮助,它应该。它与您遇到的具体问题有关。 –

+1

这是一个重复的问题,我会建议阅读这个http://stackoverflow.com/questions/7868936/read-file-line-by-line它应该更容易,因为你是一个初学者,已经实现了一些你有相同的功能。 –

+0

@ user5468794这不是一个重复的问题,因为他想存储到单独的容器中。 –

回答

0

推荐的方法是使用一个std::vector<double>或两个(每列一个),因为值可以被容易地添加到他们。

4

好事做的是利用向量:

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

真的帮了很多。谢谢 – Abdul

+1

@Abdul我相信这是你最好的解决方案。如果它解决了你的问题,请接受它。 –

相关问题