問題タブ [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 に答える
932 参照

c++ - ostringstream から istringstream に渡すコツ

圧縮/解凍のモジュールを作成してから、圧縮に istringstream を使用し、解凍に ostringstream を使用します。

私の問題は、istringstream に圧縮データを入力した後、このストリームを ostringstream に変換できないことです。私は試します:

iss.rdbuf(oss.rdbuf());

in と out のタイプは一致しますが、機能しません。

何か考えはありますか?

少し早いですがお礼を。

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

c++ - オーバーフロー() の実装の何が問題になっていますか?

ストリーム バッファを実装しようとしていますが、問題が発生してoverflow()います。バッファーのサイズをさらに 10 文字分変更し、を使用してバッファーをリセットしsetpます。次に、中断したところからポインターをインクリメントします。何らかの理由で出力が正しくありません:

文字列を印刷すると、次のようになります。

こんにちは、お元気ですか?

dと がありませんy。私は何を間違えましたか?

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

c++ - 複数のストリームを使用して、C++ で単一の出力ファイルに書き込む

Writer私は2人のメンバーを持つクラスを持っていofstreamます。両方のストリームが同じ出力ファイル
に関連付けられています。メソッドで両方のストリームを使用したいのですが、各ストリームが実際の出力ファイルの最後に書き込むようにします。Writer::write

コード

質問と同期している

ことを確認するにはどうすればよいですか? つまり、書き込む前に、 のストリーム オフセットは のストリーム オフセットと同期している必要があります。それぞれが特別な派生を使用する 関数std::ios::rdbufを使用できません。使用すると、必要な機能が失われます。Synchronizing Streamsトピック にあるいくつかの手法を使用してみましたが、実現できませんでした。f2f1f2f1
ofstreamstreambufrdbuf()

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

c++ - アップロード用に libcurl を std::streambuf でラップしますか?

私はstd::streambufAPI の読み取り半分 (すなわちunderflow()xsgetn()) を libcurl の周りに実装しました。これにより、通常のistreamユーザーがこのようなstreambufプラグインをプラグインして、HTTP または FTP サーバーからコンテンツを取得できるようになります。それはうまくいきます。

ここで、ファイルを FTP サーバーにアップロードして次のようなことを行うために、API の半分の書き込み (つまり、overflow()および)を実装したいと思います。xsputn()

CURLOPT_READFUNCTION問題は、上記の最後のコード行がそれを行う「プッシュ」方法であるのに対し、libcurl は read-callback 関数セットを介して「プル」API を使用することです。

これを機能させることはできますか?つまり、読み取りと書き込みの両方で libcurl をstreambufAPIでラップしますか?

0 投票する
0 に答える
170 参照

c++ - カスタム strbuf はファイルに何も入れません

32 バイト文字を取り込み、別の ostream オブジェクトにバイト単位で配置するカスタム strbuf を作成しようとしています。

以下はそのコードです。

エラーを特定することはできませんが、main.cpp でリンクした方法を個人的に疑っています。mybuf私によると、ofile_cp は、set_rdbuf() で私の utf32_buffer オブジェクトに置き換えられる必要がある構築中に独自のバッファーを宣言する必要があります。その後、すべての I/O は、バッファーを介して基になる ofstream に移動する必要がありofile_c1ます。ただし、ファイルには何も出力されません。誰でもここでバグを指摘できますか?

main.cpp (カスタム strbuf を使用)

utf.cpp はカスタム strbuf を定義します

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

c++ - 自分の型のカスタム char_traits<> を宣言するにはどうすればよいですか?

char_traits独自の型のカスタム クラスを作成したいと考えています。すべての関数を宣言しましたが、標準で提供されているあいまいなセマンティクスに関して混乱しています。

  1. とは何をfpos_typeすることが期待されていますか? 必要な場合はどこで必要ですか?off_typestate_type

  2. 標準では、traits::eof()と 有効なコード ポイントを分けて保持するように指示されているため、int_typeよりも大きいを使用するよう求められますchar_type。しかし、char_type有効なコードポイントが負でない範囲にあることがわかっている場合、署名付きの数値として作成できますか。の可能な値として負の値が残りますtraits::eof()。それとも、 の値を取ることができないようint_typeに、 の適切なスーパーセットである必要がありますか? もっと要点を言えば、同じにできますか?char_typechar_typeeof()int_typechar_type

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

c++ - 入力を操作するための std::basic_streambuf サブクラスの実装

次のように、std::basic_streambufすべての出力を大文字で書き込むサブクラスがあります。

たとえば、次のように使用します(問題なく動作するようです):

私が達成したいのは、多かれ少なかれ逆です。ストリームから読み取り、すべての入力を小文字に変換したいと考えています。私は次のものを持っています:

ただし、これを次のように使用しようとすると:

その結果、セグメンテーション違反が発生します。間違った関数をオーバーライドまたは呼び出していますか? 私はC++の初心者であることに注意してください。また、入力を完全に読み取り、読み取り後に小文字に変換するだけでよいことは理解していますが、これは実用的なものではなく、学習/学術目的のためです。