【注意】STLの落とし穴【危険】
■ このスレッドは過去ログ倉庫に格納されています
0706デフォルトの名無しさん
2010/10/19(火) 14:09:38std::fstreamを使ってバイナリデータを読み込もうとしています。
データは、いくつもの構造体をそのままダンプしたデータとなっており
----
fstrm.exceptions(std::fstream::badbit | std::fstream::failbit);
fstrm.open("hoeg.dat", (std::ios::in | std::ios::binary));
fstream.read(&hogeStruct, sizeof(hogeStruct));
fstream.read(&fooStruct, sizeof(fooStruct));
----
こんな感じで次々構造体にreadしていこうと思いました。
ここで困ったのですが、どうも「readした結果、ぴったりファイル終末まで達したら」failでExceptionが投げられるようなのです。
期待していたのは「readなりで、ファイルサイズをオーバーして読もうとしたら」例外。
という挙動なのですが、こちらはfstreamに存在しないのでしょうか?
eofのExceptionも「ぴったりファイル終末まで達したら」投げられてしまうようでして…。
■ このスレッドは過去ログ倉庫に格納されています