テキスト ファイルからマップに情報を入力する関数を作成しようとしています。私の主なコードは次のようになります。
int main(){
typedef map<int,student*> record;
record allstudents;
fileinput("inputtest.txt",allstudents);
//rest of code....
}
ここで、関数「fileinput」は次のように定義されています。
void fileinput(string datafile, record map){
fstream file1(datafile);
if(!file1.good()){
//error code
}
//Pulls information from file
student* S1= new physics(name,ID); //creates a new pointer
//(*S1).printinfo(); //Can print info if required for de-bug
map[ID]=S1; //store to map
entries++; //counts entries read in
}
cout<<"Import complete. "<<entries<<" new students entered."<<endl;
}
テスト ファイルからこのコードを実行すると、データが読み込まれ、コメントを外すと正常に出力され、読み込まれた(*S1).printinfo();
学生の数が正しくカウントされます。ただし、メイン関数に戻って出力すると、そこに保存されているものはallstudents
何もないように見えますか?
なぜこれが発生しているのか、この問題を回避する方法を知っている人はいますか? 読みやすくするために多くのコードを切り取っていますが、残りを表示する必要がある場合は、いつでもこれを編集できます。
ありがとう。