私は現在、私の側から実装されたコールバックを必要とするacライブラリを使用しているc ++アプリケーションで作業しています。たとえば、コールバックは次のように定義されています。
int onWrite(char *what, char *buffer, size_t size, off_t offset);
フォーマットしてバッファに書き込む必要があるstd::setがあり、サイズとオフセットを処理します。ここで、サイズはバッファのサイズであり、すでに処理されたバイト数のオフセットです
ストリームのようにバッファに入れることができる C++ の方法はありますか? 私はこのようなことを考えています:
SomeSTLStandardStream stream(buffer,size);
stream.ignore(offset); // to drop the first n offset bytes
for(it=dataset.begin();it!=dataset.end() && stream.buffer_avail()>0;it++)
stream << *it << "|"; // format csv like for example
私が持っている中心的な質問は次のとおりです。フォーマット/ストリーミングされたデータのスライスだけを取得して、指定されたバッファーに書き込む標準的な C++ の方法はありますか?
病気でない場合は、自分で実装する必要があります
私もstringstreamを見ましたが、私のニーズに正確に適合していないようで、私の代わりに独自の書き込みバッファーを使用しているため、すでに書き込まれているバイト数もわかりません....
どうも