(これは宿題です。) クラス A のオブジェクト (いくつかの文字列と int を含み、クラス B のオブジェクトのリストも含む) をファイルに書き込もうとしています。次に、これらのオブジェクトをファイルから読み戻して、その内容を表示する必要があります。私はこのコードを使用しています:
書き込み:
ofstream ofs("filestorage.bin", ios::app|ios::binary);
A d;
ofs.write((char *)&d, sizeof(d));
ofs.close();
読む:
ifstream ifs("filestorage.bin", ios::binary);
A e(1);
while(ifs.read((char *)&e, sizeof(e))) {
cout<<e;
}
ifs.close();
<<
はすでに再定義されています。
データをファイルに書き込み、それを読み返し、必要なものをすべて表示しますが、最終的にはかなり太い「アクセス違反」エラーが発生します。また、単純な変数をファイルに読み書きしようとしました(int
sなど)。それはうまくいきます。しかし、オブジェクトまたは文字列を読み取ろうとすると、「アクセス違反」が発生します。エラーが発生しないため、書き継ぎは問題ありません。
なぜこれが起こっているのか、どうすれば修正できるのか教えていただけますか? 必要に応じて、A クラスと B クラスも投稿できます。ありがとう!