2011-12-06 34 views
2

私はダブルマトリックス50x8でtxtファイルを手に入れました。最初の2行は、アレイサイズ 50x8マトリックスを含んでいます。私は上記のコードで、このファイルを読み取るためにTRID場合:私は結果を印刷するときtxtからファイルを読む

#include<iostream> 
#include<fstream> 

using namespace std; 

int main() { 

    ifstream infile; 
    infile.open("C:/Users/zenitis/Desktop/BTHAI_2.3b-src/BTHAI/txtFiles/W1.txt"); 
    double events[50][8]; 

    while (!infile.eof()) 
    { 
     for(int j=0;j<50;j++) 
     { 
      for(int k=0; k<8;k++) 
      { 
       infile >> events[j][k]; 
       // infile.get(c 
      } 
     } 
    } //end while 

    infile.close(); 

    for(int i = 0; i<50; i++){ 

     for(int l=0; l<8; l++){ 
      cout << events[i][l] << " "; 
     } 

     cout << "\n"; 
    } 

    cout << events[0][0]; 

    system("pause");  
    return 0; 
} 

は、まずイベント行列の最初の2つの要素は、ファイルの最後の2つです。第二に、どのように実際に行列の大きさである2つの最初の要素を読み取るか?

答えて

3

次のような行と列の数をお読みください。

int R, C; 
infile >> R; 
infile >> C; 

あなたは、ファイルの残りの部分を読んでネストされたループの前にそれを行います。次に、ハードコーディング50と8ではなく、ファイルの番号をループ終了ターゲットとして使用します。

+0

xmありがとうございます。 –

+0

さらに、whileループは不要です。 whileループ内のコードは、1つの行列全体を読み込みます。 whileループは多くの行列を読み込みます。これはあなたが望むものではありません。 'while(!infile.eof())'とその中カッコ( '{'、 '}')を削除してください。 –

+0

@snakeplissken: "xmありがとう、それは働く" [回答の左側にあるチェックボックスの概要をクリックすることによって]最もよく表現されます "(http://stackoverflow.com/faq#howtoask)。" – Johnsyweb

関連する問題