stringstream 的.str()正確用法和清空操作

Augusdi發表於2015-10-26

轉載自:http://dewei.iteye.com/blog/1940786

streamstring在呼叫str()時,會返回臨時的string物件。而因為是臨時的物件,所以它在整個表示式結束後將會被析構。

如果需要進一步操作string物件,先把其值賦給一個string變數後再操作。

stringstream ss("012345678901234567890123456789012345678901234567890123456789");  
//錯誤用法  
const char* cstr2 = ss.str().c_str();  
//正確用法  
const string& str2 = ss.str();  
const char* cstr2 = str2.c_str();  


使用stringstream時的清空操作

在C++中可以使用stringstream來很方便的進行型別轉換,字串串接,不過注意重複使用同一個stringstream物件時要 先繼續清空,而清空很容易想到是clear方法,而在stringstream中這個方法實際上是清空stringstream的狀態(比如出錯等),真 正清空內容需要使用.str("")方法。


      在C++中可以使用stringstream來很方便的進行型別轉換,字串串接,不過注意重複使用同一個stringstream物件時要先繼續清空,而清空很容易想到是clear方法,而在stringstream中這個方法實際上是清空stringstream的狀態(比如出錯等),真正清空內容需要使用.str(“”)方法。



相關文章