一、簡單介紹
ostringstream是C++的一個字符集操作模板類,定義在sstream.h頭文件中。ostringstream類通常用於執行C風格的串流的輸出操作,格式化字符串,避免申請大量的緩沖區,替代sprintf。
派生關系圖:
二、ostringstream的基本使用
ostringstream的構造函數形式:
explicit ostringstream ( openmode which = ios_base::out );
explicit ostringstream ( const string & str, openmode which = ios_base::out );
有時候,我們需要格式化一個字符串,但通常並不知道需要多大的緩沖區。為了保險常常申請大量的緩沖區以防止緩沖區過小造成字符串無法全部存儲。這時我們可以考慮使用ostringstream類,該類能夠根據內容自動分配內存,並且其對內存的管理也是相當的到位。取得std::ostringstream裡的內容可以通過str()和str(string&)成員函數。
三、注意事項
std::ostringstream::str()返回的是臨時對象,不能對其直接操作。
例如會有如下誤用:
const char * pBuffer = oss.str().c_str();
注意pBuffer指向的內存已被析構!!
四、代碼測試
<span style="font-size:18px;">#include <sstream>