ostringstream
a のコンテンツを他のストリーム (たとえば)に出力したいstd::cout
。使用できることはわかっていますstd::ostringstream::str()
が、ストリームの内容を文字列にコピーしてから、さらに他のストリームにコピーする際にオーバーヘッドがあると思います。使用できることがわかりましたstd::ostringstream::rdbuf()
(25票を示唆するコメント)。std::cout
しかし、以下のテスト プログラムの出力に示されているように壊れます。私は何か間違ったことをしていますか?
#include <iostream>
#include <sstream>
int main(int argc, char const *argv[])
{
std::ostringstream ss;
ss << "some data" << std::endl;
std::cerr << std::cout << std::endl;
std::cout << "start" << std::endl;
std::cout << ss.str();
std::cout << ss.rdbuf();
std::cout << "end" << std::endl;
std::cerr << std::cout << std::endl;
return 0;
}
結果:
0x6013b8
start
some data
0