我在使用txt文件在C ++中工作时遇到了问题。首先,我想创建一个程序 有.cpp和.h文件..它们有类和函数。
所以这是我的问题:
例如,我有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();
}
答案 0 :(得分:3)
虽然我不清楚它是如何工作的,但我可以猜测文件中的内容多于5个字符串(可能是另一个换行符)导致while
条件评估为true
导致for
循环读取5行(这将失败并且实际上没有读取任何内容)并将字符串数组中的好值替换为糟糕的(空字符串)。
您可能希望将条件添加到while
循环本身,而不是使用外部for
循环;类似的东西:
for (i=0;i<5 && myfile.good();i++)
{
getline (myfile,line);
player[i] = line;
}