我只是尝试将一个小的1KB二进制文件读入缓冲区,然后将缓冲区写回磁盘。似乎对于某些文件,outputfile与Inputfile完全不同,我做错了什么? 非常感谢你。
std::ifstream myfile;
myfile.open (testinput.rar);
myfile.seekg (0, myfile.end);
filesize = myfile.tellg();
myfile.seekg (0, myfile.beg);
char *mybuffer= new char[filesize];
myfile.read(mybuffer,filesize);
myfile.close();
ofstream myfile3;
myfile3.open ("testoutput.rar");
for(unsigned int i=0; i<filesize; i++)
myfile3 << mybuffer[i];
myfile3.close();
答案 0 :(得分:1)
您必须将文件打开为二进制文件。
myfile.open ("testinput.rar", std::ios::binary);
答案 1 :(得分:1)
myfile3
:
myfile3.open("testoutput.rar", ios::out | ios::binary);
此外,您可能需要考虑使用write()
来修改文件:
myfile3.write(mybuffer[i], sizeOfBuffer);