现在的位置: 首页 > 综合 > 正文

sstream使用范例

2013年06月08日 ⁄ 综合 ⁄ 共 5533字 ⁄ 字号 评论关闭

1,类型转换

 

#include<iostream>
#include<sstream>
#include<string>

using namespace std;
int main()
{
	stringstream stream;
	
	//类型转换
	int i=1000;
	string result;
	stream<<1000;
	stream>>result;

	//给数组赋值
	stream.clear();
	char result1[8];
	stream<<8888;
	stream>>result1;

	
	return 0;
}

 

2 内存文件读取

fstream中处理文件非常方便,但当仅适用于将硬盘与内存的交互,当内存中有一个文件(场景:从数据库中读取到一个二进制文件存取到一个buffer),它就无法直接处理,那么有没有一个类可以像fstream直接处理内存的中的buffer,有,没错就是stringstream

	unsigned char str[]=
	{
		0x00,0x00,0x00,0x03,0xBE,0x19,0x33,0x15,0x41,0x43,
		0x43,0x45,0x50,0x54,0x32,0x30,0x31,0x32,0x2D,0x30,
		0x35,0x2D,0x33,0x30,0x20,0x31,0x35,0x3A,0x30,0x35,
		0x3A,0x30,0x32,0xCD,0xCB,0xB3,0xF6,0x00,0x00,0x03,
		0x9A,0x19,0x33,0x15,0x41,0x43,0x43,0x45,0x50,0x54,
		0x32,0x30,0x31,0x32,0x2D,0x30,0x35,0x2D,0x33,0x30,
		0x20,0x31,0x35,0x3A,0x30,0x38,0x3A,0x32,0x34,0xCD,
		0xCB,0xB3,0xF6,0x00,0x00,0x03,0x76,0x19,0x33,0x15,
		0x41,0x43,0x43,0x45,0x50,0x54,0x32,0x30,0x31,0x32,
		0x2D,0x30,0x35,0x2D,0x33,0x30,0x20,0x31,0x35,0x3A,
		0x30,0x39,0x3A,0x35,0x30,0xCD,0xCB,0xB3,0xF6,0x00,
		0x00,0x03,0x52,0x19,0x33,0x15,0x41,0x43,0x43,0x45,
		0x50,0x54,0x32,0x30,0x31,0x32,0x2D,0x30,0x35,0x2D,
		0x33,0x30,0x20,0x31,0x35,0x3A,0x31,0x37,0x3A,0x31,
		0x33,0xCD,0xCB,0xB3,0xF6,0x00,0x00,0x03,0x2E,0x1D,
		0x33,0x15,0x41,0x50,0x50,0x52,0x4F,0x56,0x41,0x4C,
		0x32,0x30,0x31,0x32,0x2D,0x30,0x35,0x2D,0x33,0x30,
		0x20,0x31,0x35,0x3A,0x31,0x38,0x3A,0x32,0x31,0xCD,
		0xCB,0xB3,0xF6,0x00,0x00,0x03,0x08,0x1D,0x33,0x15,
		0x41,0x50,0x50,0x52,0x4F,0x56,0x41,0x4C,0x32,0x30,
		0x31,0x32,0x2D,0x30,0x35,0x2D,0x33,0x30,0x20,0x31,
		0x35,0x3A,0x31,0x39,0x3A,0x34,0x38,0xCD,0xCB,0xB3,
		0xF6,0x00,0x00,0x02,0xE2,0x19,0x33,0x15,0x41,0x43,
		0x43,0x45,0x50,0x54,0x32,0x30,0x31,0x32,0x2D,0x30,
		0x35,0x2D,0x33,0x30,0x20,0x31,0x35,0x3A,0x32,0x31,
		0x3A,0x30,0x32,0xCD,0xCB,0xB3,0xF6,0x00,0x00,0x02,
		0xBE,0x19,0x33,0x15,0x41,0x43,0x43,0x45,0x50,0x54,
		0x32,0x30,0x31,0x32,0x2D,0x30,0x35,0x2D,0x33,0x30,
		0x20,0x31,0x35,0x3A,0x32,0x34,0x3A,0x31,0x39,0xCD,
		0xCB,0xB3,0xF6,0x00,0x00,0x02,0x9A,0x1D,0x33,0x15,
		0x41,0x50,0x50,0x52,0x4F,0x56,0x41,0x4C,0x32,0x30,
		0x31,0x32,0x2D,0x30,0x35,0x2D,0x33,0x30,0x20,0x31,
		0x35,0x3A,0x32,0x36,0x3A,0x31,0x33,0xCD,0xCB,0xB3,
		0xF6,0x00,0x00,0x02,0x74,0x1D,0x33,0x15,0x41,0x50,
		0x50,0x52,0x4F,0x56,0x41,0x4C,0x32,0x30,0x31,0x32,
		0x2D,0x30,0x35,0x2D,0x33,0x30,0x20,0x31,0x35,0x3A,
		0x32,0x37,0x3A,0x32,0x39,0xCD,0xCB,0xB3,0xF6,0x00,
		0x00,0x02,0x4E,0x1D,0x33,0x15,0x41,0x50,0x50,0x52,
		0x4F,0x56,0x41,0x4C,0x32,0x30,0x31,0x32,0x2D,0x30,
		0x35,0x2D,0x33,0x30,0x20,0x31,0x35,0x3A,0x33,0x31,
		0x3A,0x35,0x39,0xCD,0xCB,0xB3,0xF6,0x00,0x00,0x02,
		0x28,0x1D,0x33,0x15,0x41,0x50,0x50,0x52,0x4F,0x56,
		0x41,0x4C,0x32,0x30,0x31,0x32,0x2D,0x30,0x35,0x2D,
		0x33,0x30,0x20,0x31,0x35,0x3A,0x33,0x33,0x3A,0x32,
		0x35,0xCD,0xCB,0xB3,0xF6,0x00,0x00,0x02,0x02,0x1D,
		0x33,0x15,0x41,0x50,0x50,0x52,0x4F,0x56,0x41,0x4C,
		0x32,0x30,0x31,0x32,0x2D,0x30,0x35,0x2D,0x33,0x30,
		0x20,0x31,0x35,0x3A,0x33,0x37,0x3A,0x33,0x35,0xCD,
		0xCB,0xB3,0xF6,0x00,0x00,0x01,0xDC,0x15,0x33,0x15,
		0x53,0x41,0x56,0x45,0x32,0x30,0x31,0x32,0x2D,0x30,
		0x35,0x2D,0x33,0x30,0x20,0x31,0x35,0x3A,0x33,0x39,
		0x3A,0x34,0x35,0xCD,0xCB,0xB3,0xF6,0x00,0x00,0x01,
		0xBA,0x15,0x33,0x15,0x53,0x41,0x56,0x45,0x32,0x30,
		0x31,0x32,0x2D,0x30,0x35,0x2D,0x33,0x30,0x20,0x31,
		0x35,0x3A,0x35,0x33,0x3A,0x33,0x33,0xCD,0xCB,0xB3,
		0xF6,0x00,0x00,0x01,0x98,0x15,0x33,0x15,0x53,0x41,
		0x56,0x45,0x32,0x30,0x31,0x32,0x2D,0x30,0x35,0x2D,
		0x33,0x30,0x20,0x31,0x35,0x3A,0x35,0x39,0x3A,0x33,
		0x34,0xCD,0xCB,0xB3,0xF6,0x00,0x00,0x01,0x76,0x15,
		0x33,0x15,0x53,0x41,0x56,0x45,0x32,0x30,0x31,0x32,
		0x2D,0x30,0x35,0x2D,0x33,0x30,0x20,0x31,0x36,0x3A,
		0x30,0x31,0x3A,0x32,0x31,0xCD,0xCB,0xB3,0xF6,0x00,
		0x00,0x01,0x54,0x15,0x33,0x15,0x53,0x41,0x56,0x45,
		0x32,0x30,0x31,0x32,0x2D,0x30,0x35,0x2D,0x33,0x30,
		0x20,0x31,0x36,0x3A,0x30,0x39,0x3A,0x34,0x36,0xCD,
		0xCB,0xB3,0xF6,0x00,0x00,0x01,0x32,0x15,0x33,0x15,
		0x53,0x41,0x56,0x45,0x32,0x30,0x31,0x32,0x2D,0x30,
		0x35,0x2D,0x33,0x30,0x20,0x31,0x36,0x3A,0x31,0x30,
		0x3A,0x35,0x39,0xCD,0xCB,0xB3,0xF6,0x00,0x00,0x01,
		0x10,0x15,0x33,0x15,0x53,0x41,0x56,0x45,0x32,0x30,
		0x31,0x32,0x2D,0x30,0x35,0x2D,0x33,0x30,0x20,0x31,
		0x36,0x3A,0x31,0x34,0x3A,0x32,0x31,0xCD,0xCB,0xB3,
		0xF6,0x00,0x00,0x00,0xEE,0x15,0x33,0x15,0x53,0x41,
		0x56,0x45,0x32,0x30,0x31,0x32,0x2D,0x30,0x35,0x2D,
		0x33,0x30,0x20,0x31,0x36,0x3A,0x31,0x38,0x3A,0x34,
		0x35,0xCD,0xCB,0xB3,0xF6,0x00,0x00,0x00,0xCC,0x15,
		0x33,0x15,0x53,0x41,0x56,0x45,0x32,0x30,0x31,0x32,
		0x2D,0x30,0x35,0x2D,0x33,0x30,0x20,0x31,0x36,0x3A,
		0x32,0x31,0x3A,0x33,0x39,0xCD,0xCB,0xB3,0xF6,0x00,
		0x00,0x00,0xAA,0x15,0x33,0x15,0x53,0x41,0x56,0x45,
		0x32,0x30,0x31,0x32,0x2D,0x30,0x35,0x2D,0x33,0x30,
		0x20,0x31,0x36,0x3A,0x32,0x37,0x3A,0x30,0x38,0xCD,
		0xCB,0xB3,0xF6,0x00,0x00,0x00,0x88,0x15,0x33,0x15,
		0x53,0x41,0x56,0x45,0x32,0x30,0x31,0x32,0x2D,0x30,
		0x35,0x2D,0x33,0x30,0x20,0x31,0x36,0x3A,0x33,0x32,
		0x3A,0x30,0x38,0xCD,0xCB,0xB3,0xF6,0x00,0x00,0x00,
		0x66,0x15,0x33,0x15,0x53,0x41,0x56,0x45,0x32,0x30,
		0x31,0x32,0x2D,0x30,0x35,0x2D,0x33,0x30,0x20,0x31,
		0x36,0x3A,0x33,0x33,0x3A,0x34,0x37,0xCD,0xCB,0xB3,
		0xF6,0x00,0x00,0x00,0x44,0x15,0x33,0x15,0x53,0x41,
		0x56,0x45,0x32,0x30,0x31,0x32,0x2D,0x30,0x35,0x2D,
		0x33,0x30,0x20,0x31,0x36,0x3A,0x33,0x36,0x3A,0x34,
		0x34,0xCD,0xCB,0xB3,0xF6,0x00,0x00,0x00,0x22,0x15,
		0x33,0x15,0x53,0x41,0x56,0x45,0x32,0x30,0x31,0x32,
		0x2D,0x30,0x35,0x2D,0x33,0x30,0x20,0x31,0x36,0x3A,
		0x34,0x30,0x3A,0x31,0x39,0xCD,0xCB,0xB3,0xF6,0x00
	};
	stringstream stream(ios::binary|ios::out|ios::in);
	stream.write((char*)str,sizeof(str));
	iter=poses.begin(),iend=poses.end();
	for(size_t i=0;iter!=iend;iter++,i++)
	{
		int offset=*iter;
		int len=lens[i];
		unsigned char* str1=new unsigned char[len];
		memset(str1,0,len);
		stream.seekg(offset,ios::beg);
		
		stream.read((char*)str1,len);
		records.push_back(str1);

	}

 

抱歉!评论已关闭.