int i = 0;
while(!fin.eof())
{
fin >> fname;
fin >> lname;
fin >> id;
customer[i].setFname(fname);
customer[i].setLname(lname);
customer[i].setId(id);
i++;
}
fin.close();
プログラムがこの while ループの 4 回目の繰り返しに到達すると (そして、入力 .txt ファイルからテキストがなくなると)、ビジュアル スタジオから次のメッセージが表示されます。
program5.exe の 0x754bc41f で未処理の例外: Microsoft C++ 例外: std::ios_base::failure at memory location 0x003ceb64..
理由はわかりません。!fin.eof() を (fin >> x) に置き換えてみました。ここで、x は int です。while の代わりに do-while を試しました。get、getline を使用してみました。>> 演算子で eof がトリガーされないのは問題かもしれないと思ったので、fin.peek(); を追加しました。ループの最後にあるため、ピーク時に eof がトリガーされます。私は何が間違っているのか分かりません。私の顧客クラスが適切に機能すると仮定すると、このループの外で完全に機能することをテストしました。