64,637
社区成员
发帖
与我相关
我的任务
分享
stringstream stream;
char s[]="abcdef";
stream.write(s,sizeof(s));
const char* p=stream.str().c_str();
const char c=*(p+5); // c 是f.用VS查看p处内存,只有bcdef.'a' 哪去?
stringstream s1;
stringstream s2;
.....
s1=s2 //error
我怎么把s2赋值给s1,只能这样么?
s1.str("");
s1<<s2.rdbuff();
s2.str(s1.str());
stringstream stream;
stream.write("1\0002\0003",5); // 1,2,3中间由八进制0隔开
//char s[]="abcdef";
//stream.write(s,sizeof(s));
cout<<"size:"<<stream.str().size()<<endl; //size:5
string str=stream.str();
cout<<"str:"<<str<<endl; //str: 1 2 3 能打印包含null的bytes,中间字符无法打印
const char* p1=str.c_str();
cout<<"c style ptr p1:"<<p1<<endl; //c style ptr p1: 1
const char* p2=stream.str().c_str();
cout<<"c style ptr p2:"<<p2<<endl; //c style ptr p2: (无法打印) 原因如6楼所说