問題タブ [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.
c++ - constchar_type*ではなくbasic_streambufchar_type*の「gptr」タイプなのはなぜですか?
streambufのbasic_streambuf
3つの「gptrs」を設定するメンバーは、次のsetg
ように宣言されます。
私は疑問に思っています:なぜ各gptrのタイプがchar_type*
代わりに作られたのconst char_type*
ですか?const_cast
これらのgptrにconstcharポインターを使用するために、ここで使用しても安全ですか?
c++ - ZeroCopyOutputStream を streambuf に
streambuf から継承し、 ZeroCopyOutputStream (google/protobuf/io/) をstreambuf に適応させるクラスを書きたいと思います。
何か案は?
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': そのようなファイルまたはディレクトリはありません
誰かがアイデアを得ましたか?
c++ - boost :: asio::streambufを使用するコードはsegfaultを引き起こします
asio :: streambufの使用で問題が発生しましたが、クラスを誤って使用しているかどうかを誰かに教えてもらいたいと思っています。このサンプルコードを実行すると、segfaultsになります。なんで?
さらに混乱させるために、このコードはWindows(Visual Studio 2008)では機能しますが、Linux(gcc 4.4.1では)では機能しません。
c++ - 「エイリアス化された」ストリーム バッファとは何ですか?
「エイリアス ストリーム バッファ」とは何ですか? 私の回答に対するコメントでこの用語に遭遇しました。
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 文字ずつデータを送信したくありません。
これが不明な場合は、事前に申し訳ありません。そして、お時間をいただきありがとうございます。
c++ - cinからの入力を「準備」することは可能ですか?
彼の答え、特にリンクされたIdeoneの例では、@Nawazはのバッファオブジェクトを変更して他のcout
何かに書き込む方法を示しています。これにより、それを利用して、からの入力を準備することを考えcin
ましたstreambuf
。
しかし、これは期待どおりに機能しません。つまり、失敗します。:| cin
提供されたから読み取るのではなく、ユーザー入力を期待しますstreambuf
。これを機能させる方法はありますか?
c++ - std :: fstreamに複数のバッファがありますか?
次のように、ファイルストリームに1つのバッファを指定できます。
私が今やりたいのは、複数のバッファーを使用することです。
std :: streambufのカスタム派生を作成せずに可能ですか?
編集: 私がやりたいことをもっと詳しく説明する必要があると思います。次の状況を考慮してください。-読み取りたいファイルがメモリに収まらない-ある種のバイナリジャンプ検索によってアクセスされているファイル
したがって、ファイルを特定のサイズの論理ページに分割する場合は、特定のページを表す複数のバッファーを提供したいと思います。これにより、ファイルの場所が読み取られ、関連するページがすでにバッファーにある場合のパフォーマンスが向上します。
c++ - 画像バッファをファイルストリームに変換
これに似たことが以前に尋ねられた可能性があります。私の問題に対する正確な答えが見つからなかったので、ここで質問することにしました。画像ファイルを処理するために独自のクラスが定義されているサードパーティのフレームワークを使用しています。ファイル名のみを受け入れ、実装全体がこれらのファイルストリームを開いて読み取り/書き込みを実行できるようにします。画像バッファー (以前に開いた画像を前処理して取得したもの) を入力し、それをこのフレームワークにフィードしたいと思います。問題は、ファイル名の文字列だけで、バッファをフィードできないことです。
バッファをファイルストリームに変換してシーク可能にし、フレームワークに取り込めるようにする最善の方法を探しています。私が何を見なければならないかを理解するのを手伝ってください。streambuf (filebuf と stringbuf) について読み、これらの型にバッファを割り当てようとしましたが、これまでのところ成功していません。