Tôi đang cố gắng viết mã để đọc một tệp nhị phân vào bộ đệm, sau đó ghi bộ đệm vào một tệp khác. Tôi có mã sau đây, nhưng bộ đệm chỉ lưu trữ một vài ký tự ASCII từ dòng đầu tiên trong tệp và không có gì khác.
int length;
char * buffer;
ifstream is;
is.open ("C:\\Final.gif", ios::binary );
// get length of file:
is.seekg (0, ios::end);
length = is.tellg();
is.seekg (0, ios::beg);
// allocate memory:
buffer = new char [length];
// read data as a block:
is.read (buffer,length);
is.close();
FILE *pFile;
pFile = fopen ("C:\\myfile.gif", "w");
fwrite (buffer , 1 , sizeof(buffer) , pFile );