我已经有了这种从文件中读取数据的方法。如果输入未退出或为空,则要求用户再次输入。然后如果它正确并且有一些数据我想将数据保存在数组龙中,它有4个属性名称,骑手,颜色,翼展。但是这个代码出了问题,我可以保存数据。这意味着毕竟龙阵列是空的,没有任何内容。任何解决方案?
int loadFile(Dragon * dragons) {
int index = 0;
ifstream fin;
char name[100];
char rider[100];
char colour[100];
int wingspan;
while (true) {
cout << "Enter filename >> ";
string filename;
getline(cin, filename);
fin.open(filename.c_str());
if (!fin)
std::cerr << filename << " is not exiting" << endl;
else {
bool empty = (fin.get(), fin.eof());
if (empty == true)
cout << filename << " is a empty file" << endl;
else {
fin.getline(name, 100);
fin.getline(rider, 100);
fin.getline(colour, 100);
fin >> wingspan;
dragons[index].setName(name);
dragons[index].setRider(rider);
dragons[index].setColour(colour);
dragons[index].setWingspan(wingspan);
index++;
break;
}
}
fin.close();
}
return index;
}
主要:
int main() {
initialize();
Dragon dragons[ NUMBER_OF_DRAGONS ];
int currDragonNumbers = loadFile(dragons);
run(dragons, currDragonNumbers);
cout << " insert your closing message here" << endl;
}