,关于c++文件读写的有关问题

请求帮助,关于c++文件读写的问题?
C/C++ code
 
比如我要读写一个RAR的文件,把in.rar的内容赋给一个char*,再把char*拷入out.rar文件
fstream in_stream;
in_stream.open("C:\\in.rar", ios::in | ios::binary);
in_stream.seekg(0, ios::end);//指向文件流尾。
int size = in_stream.tellg();//获得文件大小
in_stream.seekg(0, ios::beg);//重新指向文件首
char* a = new char[size+1];
memset(a, 0, size+1);
in_stream.read(a, size);//文件内容赋给a

fstream out_stream;
out_stream.open("C:\\out.rar", ios::out | ios::binary);
out_stream < <a;//再把a写入输出文件中。问题是:怎么out.rar文件大小不一样,而且不能打开?
delete[] a;
in_stream.close();
out_stream.close();



------解决方案--------------------
C/C++ code

memset(a, 0, size+1);//不需要加1

out_stream<<a;//请用out_stream.write(a,size);