すでに持っているデータをファイルから読み取って、ベクターにロードしようとしています。次に、変更をファイルに保存しようとしています(これは機能します)。
しかし、プログラムを実行すると、ファイルが読み取られません。これが私のコードです:
保存/ロード機能:
void StudentRepository::loadStudents(){
ifstream fl;
fl.open("studs.txt");
Student st("",0,0);
string str,ss;
int i;
int loc;
if(fl.is_open()){
while(!(fl.eof())){
getline(fl,str);
loc = str.find(",");
ss = str.substr(0,loc);
st.setName(ss);
str.erase(0,loc);
loc = str.find(",");
ss = str.substr(0,loc);
i = atoi(ss.c_str());
st.setId(i);
str.erase(0,loc);
i = atoi(ss.c_str());
st.setGroup(i);
}
}
else{
cout<<"~~~ File couldn't be open! ~~~"<<endl;
}
fl.close();
}
void StudentRepository::saveStudents(){
ofstream fl;
fl.open("studs.txt");
if(fl.is_open()){
for(unsigned i=0; i<students.size(); i++){
fl<<students[i].getName();
fl<<",";
fl<<students[i].getID();
fl<<",";
fl<<students[i].getGroup();
fl<<endl;
}
}
else{
cout<<"~~~ File couldn't be open! ~~~"<<endl;
}
}
実装(私ができる限り)-メモリ内のベクトルが作成されたときに、load関数を呼び出しました:
StudentRepository::StudentRepository(){
loadStudents();
}
私が何か間違ったことをした/どこでしたか、またはそれを修正するためのアドバイスはありますか?