我想寫一堆數據到一個ostream
對象並返回寫入的字節數。例如:如何跟蹤寫入std :: ostream對象的字節數?
using namespace std;
size_t writeStuffToStream(ostream &stream)
{
stream << some_string << some_integer << some_other_arbitrary_object << endl;
return number_of_bytes_written;
}
有寫一切的stringstream
和獲取的字節數出來的那個,然後寫stringstream
到流的明顯的解決方法,但需要額外的時間和內存。
我也意識到,如果我想寫的所有數據都是預先存在的字符串,那麼就沒有問題了。這是some_integer
和some_other_arbitrary_object
這是問題所在。
你可以鏈接streambuf對象,因此你可以從std :: streambuf。中派生一個計數流緩衝區,在記錄計數器信息後將操作委託給原始的streambuf,這裏有一個很好的教程: http://www.mr-edd.co.uk/blog/beginners_guide_streambuf –