2011-12-17 103 views
0

我有一个工作在C++与txt文件的问题..首先,我想制作一个程序,其中 有.cpp和.h文件..它有类和功能。C++处理文件

因此,这里是我的问题:

例如,我有txt文件,其中包含5行文字(玩家名)。所以我想让这个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

你是什么意思的“不工作”? – 2011-12-17 02:06:16

回答

3

虽然我不清楚它是如何不工作,我可以猜测有文件不仅仅是5串(也许是另一个新行)更多内容这导致while条件评估为true导致for循环读取5行(这将会失败并且实际上没有读取任何内容),并将字符串数组中的优质值替换为糟糕的值(空字符串)。

而不是有一个外部while循环,您可能想要将条件添加到for循环本身;沿线的东西:

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

For(int I = 0; I <5 && getline(myfile,player [i]); ++ I); – 2011-12-17 02:18:31