2011-12-17 27 views
0

私はtxtファイルでC++で動作するのに問題があります。まず、クラスと関数を持つ .cppと.hファイルを持つプログラムを作りたいと思います。テキストの5行(選手名)が含まれていファイルを扱うC++

例えば、私はtxtをしているファイル:

は、だからここに私の問題です。ですから、私はそのtxtのすべての行を文字列の変数にしたいと思います。しかし、私がその新しい変数を使用したい限り、それらはうっかり消えます。ここで

は、プログラムコードです:

#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std; 

int main() { 
    string line; 
    int i; 
    string player[5]; 

    ifstream myfile ("1-Efes Pilsen.txt"); 

    if (myfile.is_open()) 
    { 
     while (myfile.good()) 
     { 
      for (i=0;i<5;i++) 
      { 
       getline (myfile,line); 
       player[i] = line; 
      } 
      // after this point I still can use new variables 
     } 
    } 
    else cout << "Unable to open file"; 

    cout << player[1]; // <--- NOT WORKING. WHY? 

    myfile.close(); 
} 
+4

「作業していない」とはどういう意味ですか? –

答えて

3

、それが働いていないどのように私には明らかではないが、私ははわずか5弦(おそらく別の改行)よりもファイル内の多くの内容があることをを推測することができますwhileの条件がtrueと評価され、forループで5行が読み込まれ(実際には何も読み込まれずに)、文字列配列の適切な値が偽のもの(空文字列)に置き換えられます。

ループの外側にはwhileのループを使用する代わりに、ループ自体に条件を追加することをお勧めします。

for (i=0;i<5 && myfile.good();i++) 
{ 
    getline (myfile,line); 
    player[i] = line; 
} 
+1

(int I = 0; I <5&getline(myfile、player [i]); ++ I); –

+0

すべての雹Mehrdad Afshari! :) –

+0

@MooingDuck確かに。私は事を明確にしたいと思っていましたし、コアの問題から分岐したくないので、私はそのまま私の答えを保つつもりです。 –

関連する問題