我正在尝试编写代码以将二进制文件读取到缓冲区中,然后将缓冲区写入另一个文件中。我有以下代码,但是缓冲区仅存储文件第一行中的几个ASCII字符,除此之外没有其他内容。
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 );
28
您应该决定使用iostream或C文件处理。请不要同时使用两者。
—
2011年