在我的程序中,我有函数Get_auto()
;
我希望它能做到这样的事情:
void Cook::Get_auto(){
ifstream ifile;
ifile.open("sourcek.txt");
char choice;
ifile >> choice;
switch (choice)
{
case '0': lvl = 0;
break;
case '1': lvl = 1;
break;
case '2': lvl = 2;
break;
case '3': lvl = 3;
break;
case '4': lvl = 4;
break;
}
}
问题是我想多次使用Get_auto函数,每次都将数据加载到文件最后使用的部分下面。 我该怎么做?
答案 0 :(得分:0)
将ifstream作为私有字段移动到类中。然后,创建一个方法Cook::open
,在其中打开ifstream。在Cook::Get_auto
中仅使用>>
运算符。第一次调用open
方法之前,请调用Get_auto
方法。
这样的事情:(假设它是一个C ++代码,这将在头文件中)
private:
ifstream ifile;
public:
void open();
void Get_auto();
,这将在源文件中:
void Cook::open() {
ifile.open("sourcek.txt");
}
void Cook::Get_auto(){
char choice;
ifile >> choice;
switch (choice)
{
case '0': lvl = 0;
break;
case '1': lvl = 1;
break;
case '2': lvl = 2;
break;
case '3': lvl = 3;
break;
case '4': lvl = 4;
break;
}
}
添加一些检查ifile
是否已打开以及您是否可以阅读它也是明智的。