这是vc 2005 的bug吗,还是我的写法有问题,请大家来看看。
掏粪大师 2007-04-03 04:36:36 我写了一小段用stl保存struct的代码
代码如下
#include <string>
#include <iostream>
#include <sstream>
using namespace std;
struct T{
long size;
char *Desc;
void write( std::stringstream& out)
{
out.write(reinterpret_cast<char*>(&size), sizeof(long));
out.write(Desc, size);
}
void read(stringstream& in){
in.read(reinterpret_cast<char*>(&size),sizeof(long));
Desc=new char[size];
in.read(Desc,size);
}
void dump(){
cout<<"size="<<size<<endl;
cout<<"desc="<<Desc<<"|"<<endl;
}
};
int main(){
string s2="aaa";
stringstream buff;
T t,t1;
t.size=s2.length();
t.Desc=new char[t.size];
sprintf(t.Desc,"%s",s2.c_str());
t.write(buff);
t1.read(buff);
t1.dump();
system("pause");
return 0;
}
这段代码最后dump打印时T.desc后面怎么显示有乱码?
屏幕最后打印的是
size=3
desc=aaa
请按任意键继续. . .
c++ 的stl我用的不多,难道是我写的不对,请大家帮我分析分析。