std::ostringstream::str()返回临时对象
取得std::ostringstream里的内容可以通过str()和str(string&)成员函数。由于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++中替代sprintf的std::ostringstream输出流详解
一.简单介绍 ostringstream是C++的一个字符集操作模板类,定义在sstream.h头文件中.ostringstream类通常用于执行C风格的串流的输出操作,格式化字符串,避免申请大量的缓 ...
- C++ std::ostringstream 是什么 怎么用
一.简单介绍 ostringstream是C++的一个字符集操作模板类,定义在sstream.h头文件中.ostringstream类通常用于执行C风格的串流的输出操作,格式化字符串,避免申请大量的缓 ...
- MFC返回的临时对象指针成因?
msdn在介绍GetDlgItem的时候,明确指出: The returned pointer may be temporary and should not be store ...
- 【读书笔记】【程序员的自我修养 -- 链接、装载与库(三)】函数调用与栈(this指针、返回值传递临时对象构建栈、运行库与多线程、_main函数、系统调用与中断向量表、Win32、可变参数、大小端
文章目录 前言 介绍 内存 内存布局 栈与调用惯例 堆与内存管理 运行库 入口函数和程序初始化 C/C++运行库 运行库与多线程 C++全局构造与析构 fread 实现 系统调用与API 系统调用介绍 ...
- 临时对象与NRV技术
临时对象与NRV技术 <More Effective C++>中讲到,在C++中真正的临时对象是看不见的,它们不出现在你的源代码中.建立一个没有命名的非堆(non-heap)对象会产生临时 ...
- c/c++进阶之爱恨交织的临时对象: 二、天使与魔鬼
c/c++语言最让人称道的便是性能了,在大气科学.地球物理等等需要高性能计算方面c/c++语言都是不二之选.甚至在分布式领域,由于ssd固态硬盘和万兆网络的兴起,当IO不再成为分布式系统的瓶颈,CPU ...
- c++字符串操作之std::ostringstream踩坑日记
c++字符串操作之std::ostringstream踩坑日记 在开发过程中经常会遇到字符串操作,而std::string又没有format操作,这就很难受了. 于是我找到了std::ostrings ...
- 提高C++性能的编程技术笔记:临时对象+测试代码
类型不匹配:一般情况是指当需要X类型的对象时提供的却是其它类型的对象.编译器需要以某种方式将提供的类型转换成要求的X类型.这一过程可能会产生临时对象. 按值传递:创建和销毁临时对象的代价是比较高的.倘 ...
- 第八天2017/04/17(1、拷贝构造、❤临时对象)
调用拷贝构造函数的三种case 1. MyPoint p2 = p1; MyPoint p2(p1);case1中的重点:MyPoint p3 = MyPoint(3,3); //此时:C++编译器进 ...
最新文章
- shell命令之---Linux文件权限
- Asp.net中的两种刷新父窗体方法
- zhuan zai suffix tree
- Kafka 分布式环境搭建
- python画多边形_python – 使用matplotlib更有效地绘制多边形
- 复杂版---JS获得某天是一年当中的第几天
- Java中的变量Variable
- Python基础语法(if语句)
- 内网主机通过外网地址访问内网服务器
- AJAX的使用方式及教程
- WHQL之无需HLK结果就可获得微软驱动数字签名+Cannot specify [ClassInstall32] section解决
- 计算机登录账户删除著名恢复,win10系统删除计算机无用账户的恢复步骤
- heka 输出到mysql_heka - 基于Go开发的日志收集工具,可用Go或lua开发插件
- 扒一扒那些叫欧拉的定理们(八)——欧拉公式和自然对数的底e
- Linux环境变量文件介绍
- ACK Acknowledgement 确认 AES Advanced Encryption Standard 高级加密标准 ATM Asynchronous Transfer Mode异步传输模式
- Electron:前端人的最佳跨平台解决方案
- git pull 失败:Failed to connect to 127.0.0.1 port 10080: Connection refused
- 高尔顿钉板实验是二项分布吗?
- 步进电机应用c语言程序设计实例,51单片机调节步进电机应用C语言程序设计