私は Windows でアプリケーションを開発しており、fstreams を使用してファイルの読み取りと書き込みを行っています。
私は次のように開いたfstreamで書いています:
fs.open(this->filename.c_str(), std::ios::in|std::ios::out|std::ios::binary);
このコマンドで書き込みます
fs.write(reinterpret_cast<char*>(&e.element), sizeof(T));
書き込みごとにファイルを閉じる
fs.close()
次のように開いたifstreamで読む:
is.open(filename, std::ios::in);
そしてこのコマンドで読む:
is.read(reinterpret_cast<char*>(&e.element), sizeof(T));
書き込みは順調です。しかし、私はこの方法でループを読みます:
while(!is.eof())
{
is.read(reinterpret_cast<char*>(&e.element), sizeof(T));
}
ファイルの終わりに到達する必要がありますが、プログラムは読み取りを続けます。istellg pos は 0 で、gcount も 0 ですが、fail ビットと eof ビットはどちらも問題ありません。
私はこれに夢中です、助けが必要です...