もし私がread()
の内容をstd::istream
にバッファーしたいのであれば、バッファーを作るのにどれくらいの大きさがあるのかをまず知る必要があります。 std ::のIStream :: EOFが()に、非常に便利なfundtionのAFAICTではないので、std :: istreamから利用可能なバイト数を調べるにはどうすればよいですか?
と同様:及びIStreamから使用可能なバイト数を取得するには、私は現在、このような何かをしていますistream
のポインタを取得するかどうかを調べる、ストリームの末尾にある、私はこれをやっている:
bool at_eof(std::istream &is)
{
return available(is) == 0;
}
私の質問:
から使用可能なバイト数を得るための良い方法はありますがistream
?標準ライブラリにない場合は、おそらくブーストで?
*バッファを作るにはどれくらいの大きさのデータが最初に利用可能であったかを知る必要があります。 [この回答は、私の](http://stackoverflow.com/questions/5420317/c-reading-and-writing-binary-file/5420568#5420568)(2番目の部分)を参照してください。 –
うわー、面白い答え。私はこれがうまくいくと思います。ありがとうございました! – edam
@edam:バッファサイズをあらかじめ知っておく必要があるのはなぜですか?バッファの量だけ読み込めませんか? –