EOFやファイルを使用するのはこれが初めてですが、コードがハングするという問題が発生しています。これは、EOFが何度もループしていることが原因であると考えられます。
私はファイルから代入していて、そのように動的にオブジェクトを作成していますが、ファイルが実行されるとハングします。
while( !studentFile.eof() )
{
cout << "38\n";
Student * temp = new Student();
(*temp).input( studentFile );
(*sdb).insert( (*temp) );
}
このコードのチャンクは、問題のコードです。カウト>>"38\ n"; 行番号と、それが何度もループすることからぶら下がっていると私が信じる理由です。
このファイルには4人分のデータしか含まれていませんが、38回は5回表示されます。これが、1回のループが多すぎると思われる理由です。データの最後のビットを取得すると、ファイルが終了したことを登録していないようで、再びループしますが、入力するデータがないため、コードがハングします。
これを修正するにはどうすればよいですか?私の論理は正しいですか?
ありがとうございました。