7

fstream使用する価値があるかどうかを判断するために必要な、オブジェクトの 1 つの側面に対する明確な答えが見つかりません。fstreamその内容をメモリに保存しますか、それともファイル内の場所へのポインタのようなものですか? 私はもともとCFileテキストを使用して に読み込んでいましたCStringが、回避できるのであれば、ファイル全体をメモリに入れたくありません。

4

1 に答える 1

5

fstreamの略ですfile stream-- 通常、ホスト OS のファイル システム内のファイルへの接続です。(§27.9.1.1/1: 「クラスbasic_filebuf<charT,traits>は、入力シーケンスと出力シーケンスの両方をファイルに関連付けます。」)

それは (通常) そのファイルからいくつかの情報をバッファリングします。小さなファイルで作業している場合、たまたますべてがバッファに収まる可能性があります。ただし、一般的なケースでは、ほとんどのデータはディスク上のファイル (または少なくとも OS のファイル キャッシュ内) にあり、その比較的小さな部分 (通常は数キロバイト) が fstream のバッファーにあります。

メモリ内のバッファを使用してファイルのように動作させたい場合は、通常は a (またはorstd::stringstreamのようなバリアント) を使用します。std::istringstreamstd::ostringstream

于 2013-06-10T17:11:17.637 に答える