2016-10-31 21 views
3

プログラミングに慣れていないので、おそらく基本的な質問があります。私は現在、2列のテキストファイルを持っています。各行にはxとyの数字が空白で区切られています。C++の配列に.txtファイルの列を格納します

120 466 
150 151 
164 15 
654 515 
166 15 

は、私は他にどこ例えば、x [i]とするためのプログラムでいくつかのデータを呼び出してデータを読み込み、XとYの列にそれらを保存したい:これらは、ファイルの最初の5行です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; 
    } 
} 
+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>または2つ(各列に対して1つ)を使用することであろう。行うには

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私はこれがあなたの最高の解決策だと信じています。あなたの問題を解決した場合はそれを受け入れてください。 –

関連する問題