問題タブ [streambuf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
476 参照

c++ - constchar_type*ではなくbasic_streambufchar_type*の「gptr」タイプなのはなぜですか?

streambufのbasic_streambuf3つの「gptrs」を設定するメンバーは、次のsetgように宣言されます。

私は疑問に思っています:なぜ各gptrのタイプがchar_type*代わりに作られたのconst char_type*ですか?const_castこれらのgptrにconstcharポインターを使用するために、ここで使用しても安全ですか?

0 投票する
1 に答える
847 参照

c++ - ZeroCopyOutputStream を streambuf に

streambuf から継承し、 ZeroCopyOutputStream (google/protobuf/io/) をstreambuf に適応させるクラスを書きたいと思います。

何か案は?

0 投票する
5 に答える
2348 参照

c++ - コンパイル問題 C++

やあみんな。プロジェクトをコンパイルする必要があります。そこから Visual C++ 6.0 + Microsoft Platform SDK 2003 をインストールしました http://www.microsoft.com/downloads/en/details.aspx?FamilyId=A55B6B43-E24F-4EA3-A93E-40C0EC4F68E5&displaylang=en#requirements

また、[ツール] -> [オプション] -> [ディレクトリ] の下に SDK パスを追加し、それらを一番上に移動しました。

しかし、コンパイル時にまだこのエラーが発生しています...

c:\users\admin\downloads\microsoft visual c++ 6.0 standard edition\vc98\include\new(9): 致命的なエラー C1083: インクルード ファイルを開けません: '例外': そのようなファイルまたはディレクトリはありません

c:\users\admin\downloads\microsoft visual c++ 6.0 standard edition\vc98\include\ios(9): 致命的なエラー C1083: インクルード ファイルを開けません: 'streambuf': そのようなファイルまたはディレクトリはありません

誰かがアイデアを得ましたか?

0 投票する
1 に答える
1926 参照

c++ - boost :: asio::streambufを使用するコードはsegfaultを引き起こします

asio :: streambufの使用で問題が発生しましたが、クラスを誤って使用しているかどうかを誰かに教えてもらいたいと思っています。このサンプルコードを実行すると、segfaultsになります。なんで?

さらに混乱させるために、このコードはWindows(Visual Studio 2008)では機能しますが、Linux(gcc 4.4.1では)では機能しません。

0 投票する
3 に答える
214 参照

c++ - 「エイリアス化された」ストリーム バッファとは何ですか?

「エイリアス ストリーム バッファ」とは何ですか? 私の回答に対するコメントでこの用語に遭遇しました。

0 投票する
1 に答える
4818 参照

c++ - xsputnとオーバーフローでostreamとstreambufの問題を継承する

私は自分の ostream を作成することと、それに加えて、ostream のバッファーを処理するための streambuf について調査を行ってきました。私は実際にほとんどの作業を行っています。ストリームに (<<) を挿入して、問題なく文字列を取得できます。仮想関数 xsputn を実装することでこれを行います。ただし、ストリームに文字列の代わりに float または int を入力 (<<) すると、xsputn が呼び出されることはありません。

コードを確認したところ、ストリームが do_put を呼び出し、次に f_put を呼び出していることがわかりました。これは、最終的に一度に 1 文字ずつ float をバッファーに入れようとします。バッファーをスペースなしで残して、float と int のデータを取得すると、仮想関数の実装である overflow(int c) を呼び出すことができます。

ここに問題があります。フロートがいつバッファーに入れられたかを知る必要があります。別の言い方をすれば、ストリーミングされる特定の値に対してオーバーフローが呼び出されるのがこれが最後になるのはいつかを知る必要があります。したがって、それをバッファにコピーしてから、バッファがいっぱいになるのを待って関数を呼び出すことができます。

出力をキャッシュしてから、入力値ごとに一度に送信する必要があるという点で、ostream設計を悪用していることは確かです(<<)。

とにかく明確にするために、私が撮影しているものを別の方法で言い直します. 私が間違った方法で進んでいる可能性が非常に高いです。

継承された ostream と streambuf を使用して、それに値を入力し、型変換を処理できるようにしたいです。次に、その情報を別のオブジェクトに渡し、streambuf にハンドルを渡します (為に?)。そのオブジェクトには高価な i/o があるため、一度に 1 文字ずつデータを送信したくありません。

これが不明な場合は、事前に申し訳ありません。そして、お時間をいただきありがとうございます。

0 投票する
2 に答える
757 参照

c++ - cinからの入力を「準備」することは可能ですか?

の答え、特にリンクされたIdeoneの例では、@Nawazはのバッファオブジェクトを変更して他のcout何かに書き込む方法を示しています。これにより、それを利用して、からの入力を準備することを考えcinましたstreambuf

しかし、これは期待どおりに機能しません。つまり、失敗します。:| cin提供されたから読み取るのではなく、ユーザー入力を期待しますstreambuf。これを機能させる方法はありますか?

0 投票する
3 に答える
1301 参照

c++ - std :: fstreamに複数のバッファがありますか?

次のように、ファイルストリームに1つのバッファを指定できます。

私が今やりたいのは、複数のバッファーを使用することです。

std :: streambufのカスタム派生を作成せずに可能ですか?

編集: 私がやりたいことをもっと詳しく説明する必要があると思います。次の状況を考慮してください。-読み取りたいファイルがメモリに収まらない-ある種のバイナリジャンプ検索によってアクセスされているファイル

したがって、ファイルを特定のサイズの論理ページに分割する場合は、特定のページを表す複数のバッファーを提供したいと思います。これにより、ファイルの場所が読み取られ、関連するページがすでにバッファーにある場合のパフォーマンスが向上します。

0 投票する
1 に答える
621 参照

c++ - 画像バッファをファイルストリームに変換

これに似たことが以前に尋ねられた可能性があります。私の問題に対する正確な答えが見つからなかったので、ここで質問することにしました。画像ファイルを処理するために独自のクラスが定義されているサードパーティのフレームワークを使用しています。ファイル名のみを受け入れ、実装全体がこれらのファイルストリームを開いて読み取り/書き込みを実行できるようにします。画像バッファー (以前に開いた画像を前処理して取得したもの) を入力し、それをこのフレームワークにフィードしたいと思います。問題は、ファイル名の文字列だけで、バッファをフィードできないことです。

バッファをファイルストリームに変換してシーク可能にし、フレームワークに取り込めるようにする最善の方法を探しています。私が何を見なければならないかを理解するのを手伝ってください。streambuf (filebuf と stringbuf) について読み、これらの型にバッファを割り当てようとしましたが、これまでのところ成功していません。