2016-10-31 72 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我相信這是你最好的解決方案。如果它解決了你的問題,請接受它。 –

相關問題