std::ostringstream::str()返回临时对象
生活随笔
收集整理的這篇文章主要介紹了
std::ostringstream::str()返回临时对象
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
取得std::ostringstream里的內容可以通過str()和str(string&)成員函數。由于str()返回的是臨時對象,因而會有如下誤用:
const?char?*? pBuffer? =? oss.str().c_str();pBuffer指向的內存已被析夠!
測試代碼:
??????? oss? <<?" something you like "?<<? endl;
?
?//? can't work!
?const?char?*? szData1? =? oss.str().c_str();
?
?// work!
std::string? ss? =? oss.str();
?const?char?*? szData2? =? ss.c_str();
例子:
用std::ostringstream獲取整個文件的內容:????????
?
??????? istream_iterator <?char?>? inpos(ifs);
??????? istream_iterator <?char?>? endpos;
??????? ostream_iterator <?char?>?out (oss);
??????? std::copy(inpos, endpos,? out );
?
?// 有些情況下需要取得buffer:
std::string? ss? =? oss.str();
?const?char?*? szData? =? ss.c_str();
轉載于:https://www.cnblogs.com/dongzhiquan/archive/2011/03/28/1998213.html
總結
以上是生活随笔為你收集整理的std::ostringstream::str()返回临时对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# TeeChart的一些用法
- 下一篇: SQL Server 找回没有备份的数据