問題タブ [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++ - ostringstream から istringstream に渡すコツ
圧縮/解凍のモジュールを作成してから、圧縮に istringstream を使用し、解凍に ostringstream を使用します。
私の問題は、istringstream に圧縮データを入力した後、このストリームを ostringstream に変換できないことです。私は試します:
iss.rdbuf(oss.rdbuf());
in と out のタイプは一致しますが、機能しません。
何か考えはありますか?
少し早いですがお礼を。
c++ - オーバーフロー() の実装の何が問題になっていますか?
ストリーム バッファを実装しようとしていますが、問題が発生してoverflow()
います。バッファーのサイズをさらに 10 文字分変更し、を使用してバッファーをリセットしsetp
ます。次に、中断したところからポインターをインクリメントします。何らかの理由で出力が正しくありません:
文字列を印刷すると、次のようになります。
こんにちは、お元気ですか?
d
と がありませんy
。私は何を間違えましたか?
c++ - 複数のストリームを使用して、C++ で単一の出力ファイルに書き込む
Writer
私は2人のメンバーを持つクラスを持っていofstream
ます。両方のストリームが同じ出力ファイル
に関連付けられています。メソッドで両方のストリームを使用したいのですが、各ストリームが実際の出力ファイルの最後に書き込むようにします。Writer::write
コード
質問と同期している
ことを確認するにはどうすればよいですか? つまり、書き込む前に、 のストリーム オフセットは のストリーム オフセットと同期している必要があります。それぞれが特別な派生を使用する
関数std::ios::rdbufを使用できません。使用すると、必要な機能が失われます。Synchronizing Streamsトピック
にあるいくつかの手法を使用してみましたが、実現できませんでした。f2
f1
f2
f1
ofstream
streambuf
rdbuf()
c++ - アップロード用に libcurl を std::streambuf でラップしますか?
私はstd::streambuf
API の読み取り半分 (すなわちunderflow()
とxsgetn()
) を libcurl の周りに実装しました。これにより、通常のistream
ユーザーがこのようなstreambuf
プラグインをプラグインして、HTTP または FTP サーバーからコンテンツを取得できるようになります。それはうまくいきます。
ここで、ファイルを FTP サーバーにアップロードして次のようなことを行うために、API の半分の書き込み (つまり、overflow()
および)を実装したいと思います。xsputn()
CURLOPT_READFUNCTION
問題は、上記の最後のコード行がそれを行う「プッシュ」方法であるのに対し、libcurl は read-callback 関数セットを介して「プル」API を使用することです。
これを機能させることはできますか?つまり、読み取りと書き込みの両方で libcurl をstreambuf
APIでラップしますか?
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 を定義します
c++ - 自分の型のカスタム char_traits<> を宣言するにはどうすればよいですか?
char_traits
独自の型のカスタム クラスを作成したいと考えています。すべての関数を宣言しましたが、標準で提供されているあいまいなセマンティクスに関して混乱しています。
とは何を
fpos_type
することが期待されていますか? 必要な場合はどこで必要ですか?off_type
state_type
標準では、
traits::eof()
と 有効なコード ポイントを分けて保持するように指示されているため、int_type
よりも大きいを使用するよう求められますchar_type
。しかし、char_type
有効なコードポイントが負でない範囲にあることがわかっている場合、署名付きの数値として作成できますか。の可能な値として負の値が残りますtraits::eof()
。それとも、 の値を取ることができないようint_type
に、 の適切なスーパーセットである必要がありますか? もっと要点を言えば、同じにできますか?char_type
char_type
eof()
int_type
char_type
c++ - 入力を操作するための std::basic_streambuf サブクラスの実装
次のように、std::basic_streambuf
すべての出力を大文字で書き込むサブクラスがあります。
たとえば、次のように使用します(問題なく動作するようです):
私が達成したいのは、多かれ少なかれ逆です。ストリームから読み取り、すべての入力を小文字に変換したいと考えています。私は次のものを持っています:
ただし、これを次のように使用しようとすると:
その結果、セグメンテーション違反が発生します。間違った関数をオーバーライドまたは呼び出していますか? 私はC++の初心者であることに注意してください。また、入力を完全に読み取り、読み取り後に小文字に変換するだけでよいことは理解していますが、これは実用的なものではなく、学習/学術目的のためです。