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); }