c中std:ostringstream输出用法1、简要介绍ostringstream是c的字符集操作模板类,定义在sstream.h头文件中。 ostringstream类通常用于执行c样式流的输出操作和设置字符串格式,以避免请求大量缓冲区而不是sprintf。
派生关系图:
二、ostringstream的基本使用ostringstream的构造函数格式:
explicit ostringstream (打开模式which=IOs _ base :3360 out );
explicit ostringstream (conststringstr,open mode which=IOs _ base :3360 out );
虽然可能需要设置字符串的格式,但通常不知道缓冲区的大小。 申请很多缓冲区进行保险,防止缓冲区太小,无法存储所有字符串。 在这种情况下,请考虑使用ostringstream类。 ostringstream类根据内容自动分配内存,并正确管理内存。 要检索std:ostringstream的内容,请使用str (和str )成员函数。
三、注意事项STD :3360 ostringstream :3360 str ()返回临时对象,不能直接操作。
例如有以下误用。
const char * pBuffer=oss.str ().c_str );
请注意,pBuffer指向的内存已分解。
四.代码测试
复制代码
# include string # includeiostreamusingnamespacestd; voidmain((OstringStreamostR1; //结构方式1OstringStreamOstr2(ABC ); //结构方式----------------然后-----------------------------------------------------------------返回--- /---------------- -请参阅-----------------------------//防止将当前插入的索引位置(即put pointer ) ostr2.seekp(2; put pointer的值ostr2.put('g );//在putpointer位置写入' g ',将putpointer写入下一个字符位置cout ostr2.str () endl; /------------------ -请参阅*2(str ) )以清除缓冲区,然后清除脏数据-----------------------。 cout ostr2.str () endl; ostr2.str () _def ); cout ostr2.str () endl; ostr2 'gggghh '; //复盖原始数据并自动增加缓冲区cout ostr2.str () endl的ostr2.str (' ); //如果不添加此语句,将发生运行时错误,_df的使用空间小于gggghh,因此脏数据ostr2.str(_df ); cout ostr2.str () endl; //输出随机存储器值,危险的const char* buf=ostr2.str ().c_str ); cout buf endl; //正确输出_df string ss=ostr2.str (; const char *buffer=ss.c_str (; cout buffer endl; }运行结果如下。
转自: http://blog.csdn.net/lanxuezaipiao/article/details/16358159