メソッドをstd::fstream
使用して終了するために読んだ後、開始することはできません( -1を返します)。閉じて再度開かずに再利用する方法はありますか?read
seekg
tellg
std::fstream
if (!stream->is_open();)
{
throw "stream is closed";
}
stream->seekg(0, stream->end);
std::fstream::pos_type lenght = stream->tellg();
stream->seekg(0, stream->beg);
if (0 != stream->tellg())
{
throw "could not set seek to beginig";
}
char* buffer = new char[lenght];
stream->read(buffer, lenght);
*data = buffer;
return lenght;
1回目の実行はOKを返します。2ランスロー(シーク不可)。